这是我的GCSE计算机科学。这是代码:
<html>
<p id="demo"></p>
<script>
var middaytemp = []; midnighttemp = [];
for (count = 0; count <= 29; count++) {
middaytemp[count] = prompt("What was the temperature at midday");
midnighttemp[count] = prompt("what was the temperature at midnight?");
document.getElementById("demo").innerHTML += middaytemp[count] + "° Celcius<br>";
document.getElementById("demo").innerHTML += midnighttemp[count] + "° Celcius<br>";
}
</script>
</html>
正如你所看到的那样,这两个问题每次都要问29次。我把它们放在一个数组中,但我需要找到数组的平均值。所以当温度在代码末尾放入时,会显示当晚的平均值和当天的平均值。
答案 0 :(得分:2)
使用reduce
!这会将midday
的总和返回sum
。
let sum = midday.reduce((x,y) => x+y);
sum = sum/midday.length; //average
我在这里使用了一个名为lambda expression
或“胖箭头功能”的ES6功能。它是匿名函数的词法等价物,用作数组reduce
函数的回调参数。
var sum = midday.reduce(function(x,y) {
return x+y;
});
使用lambda表达式,隐含返回,这就是您只需要=> x+y
的原因。多行需要{ ... }
。这是箭头函数语法的documentation。
答案 1 :(得分:1)
只需遍历数组,因为您的值是字符串,所以必须先将它们转换为整数。而平均值只是值的总和除以值的数量。
var sum = 0; for( var i = 0; i < elmt.length; i++ ){ sum += parseInt( elmt[i], 10 ); //don't forget to add the base } var avg = sum/elmt.length; document.write( "The sum of all the elements is: " + sum + " The average is: " + avg );
答案 2 :(得分:0)
您可以通过以下
获得结果var sumTempDay = 0;
for (var i = 0 ; i < middaytemp.length; i++) {
sumTempDay += middaytemp[i];
}
var avgTempDay = sumTempDay/middaytemp .length;
var sumTempNight = 0;
for (var i = 0 ; i < midnighttemp.length; i++) {
sumTempNight += midnighttemp[i];
}
var avgTempNight = sumTempNight/midnighttemp.length;
答案 3 :(得分:0)
您需要先将字符串转换为float。然后计算平均值。
var sum = 0
middaytemp.forEach(function(val){
sum += parseFloat(val);
})
var average = sum/middaytemp.length;