一、方法梳理
1、说明:
reduce() 方法对数组中的每个元素按序执行一个提供的 reducer 函数,
每一次运行 reducer 会将先前元素的计算结果作为参数[prev]传入,
最后将其结果汇总为单个返回值
2、语法:
reduce(reducer(prev, cur, index, arr){},init)
3、参数说明
prev: 初始值/第一项的值/上一次叠加值
cur: 当前参与叠加的项
index: 当前值【prev】的索引
arr: 数组本身
4、不改变原数组
5、返回值为一累加结果sum
二、代码分析
var arr = [1, 2, 3, 4, 5];
sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index,arr);
return prev + cur;
},0)
console.log(arr, sum);
输出:
0 1 0 [ 1, 2, 3, 4, 5 ]
1 2 1 [ 1, 2, 3, 4, 5 ]
3 3 2 [ 1, 2, 3, 4, 5 ]
6 4 3 [ 1, 2, 3, 4, 5 ]
10 5 4 [ 1, 2, 3, 4, 5 ]
[ 1, 2, 3, 4, 5 ] 15 // 不改变原数组