reduce 用于从数组中返回一个值,作为顺序处理先前元素的结果的结果。
reduceRight 做同样的事情,但从最后开始并向后工作。
map 用于返回一个数组,其成员都已通过函数传递。
两种方法都不会影响数组本身。
var A1= ['1', '2', '3', '4', '5', '6', '7','8'];
// 这种对 map 的使用返回一个新的原始元素数组,转换为数字-
A1=A1.map(数字); // >> A1 的每个元素都转换为数字
// 这减少了数组元素的总数-
var A1sum= A1.reduce(function(a, b){ return a+b;});
// A1sum>>返回值:(数字)36
旧版浏览器不支持它们,因此您需要提供它们的替代品。如果您所做的一切都可以在一个简单的循环中复制,那是不值得的。
计算总体的标准差是可以有效使用 map 和 reduce 的一个例子——
Math.mean= function(array){
return array.reduce(function(a, b){ return a+b; })/array.length;
}
Math.stDeviation=function(array){
var mean= Math.mean(array);
dev= array.map(function(itm){return (itm-mean)*(itm-mean); });
return Math.sqrt(dev.reduce(function(a, b){ return a+b; })/array.length);
}
var A2= [6.2, 5, 4.5, 6, 6, 6.9, 6.4, 7.5];
alert ('mean: '+Math.mean(A2)+'; deviation: '+Math.stDeviation(A2))