reduce
arr.reduce(callback[, initialValue])
var sum = [1, 2, 3].reduce(function (accumulator,currentValue,currentIndex,array) {
console.log(accumulator,currentValue,currentIndex,array)
return accumulator + currentValue;
},0);
console.log(sum)
输出结果:
这样可以看出,取的第一个值是0,也就是累加的起始值,第二个参数,是数组中的第一个元素,值是1,索引是0。0+1=1;1+2=3;3+3=6;这就是整个过程
不加initialValue=0
可以看出,这里累加的起始值,默认取的是数组中的第一个元素的值。
总结:
- accumulator(累加器),前面操作的一个结果值
- currentValue(当前值)
- currentIndex可选(当前索引)
- array可选(当前操作的数组)
- initialValue可选(初始值),也就是我们累加是从哪个值开始的,是从0还是1…,没有写的话是取的数组的第一个元素值的。
这样看的话,是不是可以拿他来干很多的事,而不仅仅是累加求和