JavaScript趣题:统计降水量
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript趣题:统计降水量,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3248字,纯文字阅读大概需要5分钟。
内容图文
![JavaScript趣题:统计降水量](/upload/InfoBanner/zyjiaocheng/303/009ada7cede54518bfee5743f1490dbd.jpg)
如下所示:
var data = "Rome:Jan 81.2,Feb 63.2,Mar 70.3,Apr 55.7,May 53.0,Jun 36.4,Jul 17.5,Aug 27.5,Sep 60.9,Oct 117.7,Nov 111.0,Dec 97.9" + "\n" + "London:Jan 48.0,Feb 38.9,Mar 39.9,Apr 42.2,May 47.3,Jun 52.1,Jul 59.5,Aug 57.2,Sep 55.4,Oct 62.0,Nov 59.0,Dec 52.9" + "\n" + "Paris:Jan 182.3,Feb 120.6,Mar 158.1,Apr 204.9,May 323.1,Jun 300.5,Jul 236.8,Aug 192.9,Sep 66.3,Oct 63.3,Nov 83.2,Dec 154.7" + "\n" + "NY:Jan 108.7,Feb 101.8,Mar 131.9,Apr 93.5,May 98.8,Jun 93.6,Jul 102.2,Aug 131.8,Sep 92.0,Oct 82.3,Nov 107.8,Dec 94.2" + "\n" + "Vancouver:Jan 145.7,Feb 121.4,Mar 102.3,Apr 69.2,May 55.8,Jun 47.1,Jul 31.3,Aug 37.0,Sep 59.6,Oct 116.3,Nov 154.6,Dec 171.5" + "\n" + "Sydney:Jan 103.4,Feb 111.0,Mar 131.3,Apr 129.7,May 123.0,Jun 129.2,Jul 102.8,Aug 80.3,Sep 69.3,Oct 82.6,Nov 81.4,Dec 78.2" + "\n" + "Bangkok:Jan 10.6,Feb 28.2,Mar 30.7,Apr 71.8,May 189.4,Jun 151.7,Jul 158.2,Aug 187.0,Sep 319.9,Oct 230.8,Nov 57.3,Dec 9.4" + "\n" + "Tokyo:Jan 49.9,Feb 71.5,Mar 106.4,Apr 129.2,May 144.0,Jun 176.0,Jul 135.6,Aug 148.5,Sep 216.4,Oct 194.1,Nov 95.6,Dec 54.4" + "\n" + "Beijing:Jan 3.9,Feb 4.7,Mar 8.2,Apr 18.4,May 33.0,Jun 78.1,Jul 224.3,Aug 170.0,Sep 58.4,Oct 18.0,Nov 9.3,Dec 2.7" + "\n" + "Lima:Jan 1.2,Feb 0.9,Mar 0.7,Apr 0.4,May 0.6,Jun 1.8,Jul 4.4,Aug 3.1,Sep 3.3,Oct 1.7,Nov 0.5,Dec 0.7";
现在任务是这样的,你得提供两个函数,一个计算指定城市的各月降水量平均数,另一个计算降水量方差。
函数原型如下:
function mean(town, string)
function variance(town, string)
town参数指代城市名,string则是降水量数据
用法举例如下:
mean("London", data) \\ 51.19(9999999999996) variance("London", data) \\ 57.42(833333333374)
思路比较简单:
1.要计算方差必须先算出平均数来
2.要计算平均数,要先根据城市名取出降水量数据
3.要取降水量数据必须先遍历所有数据,找到了再分割字符串
应该注意的问题:
1.有可能找不到指定的城市,它不存在,那么直接返回-1
2.浮点数运算有可能出现精度问题,忽略不计,不必取整或截断
//扩展一个startWith方法 if (typeof String.prototype.startWith !== "function") { String.prototype.startWith = function(str) { return this.indexOf(str) === 0; }; } //查询指定城市的降水量数据 function searchData(town, strng) { var datas = strng.split("\n"); var num = datas.length; for (var i = 0; i < num; i++) { if (datas[i].startWith(town)) { return datas[i]; } } return null; } //求降水量平均数 function mean(town, strng) { var total = 0; var current = searchData(town, strng); if (current) { var pair = current.split(":"); if (pair[0] !== town) { return -1; } var allMonths = pair[1].split(","); for (var j = 0; j < allMonths.length; j++) { var perMonth = allMonths[j]; total += parseFloat(perMonth.split(" ")[1]); } return total / 12; } return -1; } //求方差 function variance(town, strng) { var average = mean(town, strng); var total = 0; var current = searchData(town, strng); if (current) { var pair = current.split(":"); if (pair[0] !== town) { return -1; } var allMonths = pair[1].split(","); for (var j = 0; j < allMonths.length; j++) { var perMonth = allMonths[j]; var rainfall = parseFloat(perMonth.split(" ")[1]); total += Math.pow(average - rainfall, 2); } return total / 12; } return -1; }
以上就是JavaScript趣题:统计降水量的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!
内容总结
以上是互联网集市为您收集整理的JavaScript趣题:统计降水量全部内容,希望文章能够帮你解决JavaScript趣题:统计降水量所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。