文章目录
数组归并方法
数组有两个归并方法:reduce() 与 reduceRight()
这两个方法都会迭代数组的所有项,并在此基础上构建一个最终的返回值
reduce() 方法从数组第一项开始遍历到最后一项
reduceRight() 方法从最后一项遍历到第一项
使用reduce()还是reduceRight(),主要取决于要从哪头开始遍历数组。除此之外,它们完全相同。
接收两个参数
- 对每一项都会运行的归并函数
- 可选的归并起点的初始值
归并函数接收四个参数
- 上一个归并值
- 当前项
- 当前项的索引
- 数组本身
这个函数返回的任何值都会作为第一个参数自动传给下一项
第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数就是数组的第二项
例子
let values = [1, 2, 3, 4, 5];
let sum = values.reduce((prev, cur, index, array) => prev + cur);
// 1+2=3 3+3=6 6+4=10 10+5=15
alert(sum); // 15