javascript - 为什么 `array.reduce()` 从索引 1 开始

标签 javascript ecmascript-6

我想知道为什么 array.reduce() 中的索引在下面的示例中从 1 而不是 0 开始

([11,22,33,44]).reduce((acc, val, index) => console.log(val));
//This outputs 22, 33 and 44 and skips 11

最佳答案

如果您没有将值作为第二个参数传递,则累加器将采用第一个值:

// add a vlaue to start
([11,22,33,44]).reduce((acc, val, index) => console.log(val), 0);
// now all values are iterated


如果您记录累加器,您可以看到所有值在没有第二个参数的情况下是如何使用的:

// Show accumulator return value
let final = ([11,22,33,44]).reduce((acc, val, index) => (console.log("acc:", acc, "val:", val), val));

// final is the last object that would have been the accumulator
console.log("final:", final)

关于javascript - 为什么 `array.reduce()` 从索引 1 开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55958051/

相关文章:

javascript - $scope 在 ng-click 处理程序中不可见

javascript - 视频没有长高

javascript - 如何序列化此 JSON 对象?

javascript - 在 React 中如何根据对象值勾选输入复选框

javascript - 如何使用 for 循环来控制台记录数组的每个项目?

javascript - 如何通过onload函数自动实现onclick

javascript - 如何在全局变量中存储 $.getJSON 对象并稍后浏览它

javascript - 使用默认值的嵌套参数解构

javascript - vue.js 2.0 通信最佳实践

javascript - 对象操作以形成新对象