数组方法 reduce 用来迭代一个数组,并且把它累积到一个值中
使用 reduce 方法时,你要传入一个回调函数,这个回调函数的参数是一个 累加器
arr.reduce(function(prev,cur,index,arr){
...
}, init);
其中,
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
arr 表示原数组;
init 表示初始值
求数组的和
var arr = [3,9,4,3,6,0,9];
var sum = arr.reduce(function (prev, cur) {
return prev + cur;
},0);
console.log(sum)//34
求数组中最大值
var arr = [3, 9, 4, 3, 6, 0, 9];
var max = arr.reduce(function(prev, cur) {
return Math.max(prev, cur);
});
console.log(max)//9
数组去重
var arr = [3, 9, 4, 3, 6, 0, 9];
var newArr = arr.reduce(function(prev, cur) {
prev.indexOf(cur) === -1 && prev.push(cur);
return prev;
}, []);
console.log(newArr) //[3, 9, 4, 6, 0]