一.语法
arr.reduce(function(prev,cur,index,arr){
...
}, init);
arr 表示原数组
参数
常用参数 : prev cur
prev 表示上一次调用回调时的返回值,或者初始值init
cur 表示当前正在处理的数组元素
index 表示当前正在处理的数组元素的索引 若提供init值 则索引为0 否则索引为1
init 表示初始值
二. 实列
1.求数组项之和
let arr = [3,9,4,3,6,0,9];
let sum = arr.reduce(function (prev, cur) {
return prev + cur;
},0);
由于传入了初始值0,所以开始时prev的值为0,cur的值为数组第一项3,相加之后返回值为3作为下一轮回调的prev值,然后再继续与下一个数组项相加,以此类推,直至完成所有数组项的和并返回。
2.求数组项最大值
let arr = [3,9,4,3,6,0,9];
let max = arr.reduce(function (prev, cur) {
return Math.max(prev,cur);
});
由于未传入初始值 所以开始时prev的值 为数组第一项 3 , cur的值为数组第二项 9 ,取两值最大值后继续进行下一轮回调