源码版本 1.4.4
Array.prototype.reduce()
ECMAScript 5 提供了两个归并数组的方法:reduce() 和 reduceRight()。这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。其中,reduce() 方法从数组的第一项开始,逐个遍历到最后。而 reduceRight() 则从数组的最后一项开始,向前遍历到第一项。
arr.reduce(callback,[initialValue]) 接收两个参数,第一个参数为一个回调函数,数组中的每个元素都会被传入此函数中迭代;第二个参数为一个可选的初始值,它的值会被作为回调函数的第一个参数传入。
这里重点在于理解 reduce() 的第一个参数 callback,它是一个回调函数,这个回调函数接收四个参数:
- accumulator 上一次调用回调返回的值,或者是提供的初始值(initialValue)
- currentValue 数组中正在处理的元素
- currentIndex 数组中正在处理的元素索引,如果提供了 initialValue ,从0开始;否则从1开始
- array 调用 reduce 的数组
