arr.reduce(function(prev,cur,index,arr){
...
}, init);
// 其中,
// prev 表示上一次调用回调时的返回值,或者初始值 init;
// cur 表示当前正在处理的数组元素;
// index 表示当前正在处理的数组元素的索引,若提供 init 值( [] ),则索引为0,否则索引为1;
// arr 表示原数组;
// init 表示初始值。可为[] ,也可以为 0 或其他初始值
// 计算数组项之和
let bigarr = [1, 3, 7, 9, 8, 7, 6, 2, 9, 1, 3]
console.log(bigarr.reduce((prev, cur) => {
return prev + cur
})) // 56
// 求最大值
console.log('max', bigarr.reduce((prev, cur) => {
return Math.max(prev, cur) // 9
}))
// 数组去重
let newArr = bigarr.reduce((prev, cur) => {
console.log('prev', prev, cur)
prev.indexOf(cur) === -1 && prev.push(cur)
return prev
}, [])
// prev [] 1
// style.html:78 prev [1] 3
// style.html:78 prev (2) [1, 3] 7
// style.html:78 prev (3) [1, 3, 7] 9
// style.html:78 prev (4) [1, 3, 7, 9] 8
// style.html:78 prev (5) [1, 3, 7, 9, 8] 7
// style.html:78 prev (5) [1, 3, 7, 9, 8] 6
// style.html:78 prev (6) [1, 3, 7, 9, 8, 6] 2
// style.html:78 prev (7) [1, 3, 7, 9, 8, 6, 2] 9
// style.html:78 prev (7) [1, 3, 7, 9, 8, 6, 2] 1
// style.html:78 prev (7) [1, 3, 7, 9, 8, 6, 2] 3
console.log('new', newArr) // [1, 3, 7, 9, 8, 6, 2]
上一篇
react-redux
2021-09-28
下一篇
es6promise对象
2021-09-17