reduce为数组中的每个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素
语法:arr.reduce(callback,[initialValue])
reduce接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用reduce的数组
1、
var arr = ['吃饭', '睡觉', '打豆豆', '学习']
const result = arr.reduce((prev, cur, index, arr)=> {
console.log('prev' + prev)
console.log('cur' + cur)
console.log('index' + index)
console.log('arr' + arr)
})
输出结果为:
可以看出index是从1开始
2、提供initialValue为0
var arr = ['吃饭', '睡觉', '打豆豆', '学习']
const result = arr.reduce((prev, cur, index, arr)=> {
console.log('prev' + prev)
console.log('cur' + cur)
console.log('index' + index)
console.log('arr' + arr)
return prev
}, 0)
console.log('result'+result)
我们发现如果没有提供initialValue,reduce会从索引为1的地方开始执行callback方法,如果提供initialValue,reduce会从索引为0的地方开始执行callback方法
参考文章:JS数组reduce()方法详解及高级技巧