reduce 用于从数组中返回一个值,该值是对先前元素的结果进行顺序处理得出的。
reduceRight 也是一样,但是从末尾开始反向处理。
map 用于返回一个数组,其中所有成员都经过了函数处理。
两种方法都不会影响数组本身。
var A1= ['1', '2', '3', '4', '5', '6', '7',' 8'];
// 这个 map 的使用返回原始元素转换为数字的新数组-
A1=A1.map(Number); // >> A1 的每个元素都被转换为数字
// 这个 reduce 对数组元素求和-
var A1sum= A1.reduce(function(a, b){ return a+b;});
// A1sum>> 返回值: (Number) 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))