我有一个长javascript int数组的引用:
var heights = new Array(120, 123, 145, 130, 131, 139, 164, 164, 165, 88, 89);
我必须每次计算三个项目的平均值,包括最后两个数字(88,89)。 如何才能包含这些最后的值(只有两个)?
答案 0 :(得分:0)
这是计算从索引到索引的给定数组的平均值的方法:
var grades = [1,2,3,4,5,6,7,8,9,0];
var average = calculateAverage(grades,0,9);
console.log(average);
function calculateAverage(arr,start,end){
var total =0;
for(var i=start; i<=end; i++){
total+=arr[i];
}
var diff = (end-start)+1;
var avg = total/diff;
return avg;
}
答案 1 :(得分:0)
对数组使用 Rest参数和 for ... of循环 ...
function average(...nums) {
let total = 0;
for(const num of nums) {
total += num;
}
let avr = total / arguments.length;
return avr;
}
console.log(average(2, 6));
console.log(average(2, 3, 3, 5, 7, 10));
console.log(average(7, 1432, 12, 13, 100));
console.log(average());
问题:无参数-console.log(average()); -返回Null,正确答案必须为0。这里有任何简便的速记方法吗?
答案 2 :(得分:-2)
感谢javascript,你可以完美地做到这一点。
var heights = new Array(120, 123, 145, 130, 131, 139, 164, 164, 165, 88, 89);
var results = [];
for( var i = 0; i < heights.length; i += 3 ){
results[results.length] = (heights[i] + (heights[i+1]||0) + (heights[i+2]||0))/Math.min(3,heights.length-i);
}
alert( results.toString() );
&#13;
heights[i+1]||0
只是意味着如果heights[i+1]
不存在,从而返回null
,整个事情将等于0(更多信息,只需谷歌 javascript短路运营商。很多人评论说,也许你没有对你的任务进行足够的研究;)