今天看到同事使用reduce的一段代码,不太明白,MDN web docs上说,reducer(累加器)函数接收4个参数:
1.Accumulator (acc) (累计器)
2.Current Value (cur) (当前值)
3.Current Index (idx) (当前索引)
4.Source Array (src) (源数组)
为了搞明白第4个可选参数,我写了下面的例子:
var arr = [1, 2, 3, 4];
//var sum = (a, b) => a + b;
// function sum(a, b) {
// console.log(a, b);
// return a + b;
// }
function sum(a, b, c, d) {
console.log(a, b, c, d);
for (let i = 0; i < d.length; i++) {
d[i] = d[i] * 2;
}
return a + b;
}
var result = arr.reduce(sum, 50) // 10
debugger
vs控制台打印的结果如下: