最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript趣题:统计降水量

来源:懂视网 责编:小采 时间:2020-11-27 20:25:15
文档

JavaScript趣题:统计降水量

JavaScript趣题:统计降水量:气象台的工作人员委托你对一组数据进行分析,这里有全球一些城市从一月到十二月份的降水量,每个城市的数据都由"\n"分割开来,每个城市名后面紧跟着一个":"冒号。如下所示: var data = "Rome:Jan 81.2,Feb 6
推荐度:
导读JavaScript趣题:统计降水量:气象台的工作人员委托你对一组数据进行分析,这里有全球一些城市从一月到十二月份的降水量,每个城市的数据都由"\n"分割开来,每个城市名后面紧跟着一个":"冒号。如下所示: var data = "Rome:Jan 81.2,Feb 6

气象台的工作人员委托你对一组数据进行分析,这里有全球一些城市从一月到十二月份的降水量,每个城市的数据都由"\n"分割开来,每个城市名后面紧跟着一个":"冒号。

如下所示:

	
	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;
	}	

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

JavaScript趣题:统计降水量

JavaScript趣题:统计降水量:气象台的工作人员委托你对一组数据进行分析,这里有全球一些城市从一月到十二月份的降水量,每个城市的数据都由"\n"分割开来,每个城市名后面紧跟着一个":"冒号。如下所示: var data = "Rome:Jan 81.2,Feb 6
推荐度:
标签: js 统计 javascript
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top