数组有一个内置的 reduce 函数,如果你喜欢短的单行,你也可以这样做:
var arr = [1,2,3,4];
function sum(x,y){
return x + y;
}
var total = arr.reduce(sum); // total -> 10
// This also works
var total = arr.reduce( function(x,y) { return (x + y); } );
var avg = ( total / arr.length );
Reduce 是一个高阶函数,可将序列“减少”为单个值。
下面是reduce的执行流程。
var temp = sum( arr[0], arr[1] );
temp = sum( temp, arr[2] );
temp = sum( temp, arr[3] );
return temp;
窃取 Andrew Shepherd 为数组数据结构添加新函数的答案。
Array.prototype.sum = function() { return this.reduce( function(x,y) { return (x+y); } )};
Array.prototype.avg = function() { return (this.sum() / this.length) };