1、语法
arr.reduce(callback,[initialValue])
reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。
callback (执行数组中每个值的函数,包含四个参数)
1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
2、currentValue (数组中当前被处理的元素)
3、index (当前元素在数组中的索引)
4、array (调用 reduce 的数组)
initialValue (作为第一次调用 callback 的第一个参数。)
2、实用小例
//数据之和
let array = [2,3,4];
let result= s.reduce((pre,cur)=>{
return pre+cur;
},1)
console.log(result);//2+3+4
// 数组去重
var arr = [1,2,3,3,4,4,2,1,5]
var newArr = arr.reduce(function (prev, cur,index,curarr) {
console.log('curarr:',curarr)//[1,2,3,3,4,4,2,1,5]
prev.indexOf(cur) === -1 && prev.push(cur);
//这里表示prev第一次去设置的init值[],当满足当前的新数组没有cur(当前元素)时才执行push
return prev;
},[]);
console.log(newArr);//[1,2,3,4,5]
// 计算数组最大值
var max = arr.reduce(function (prev, cur) {
return Math.max(prev,cur);
});
网友评论