如果您将在控制台中启动此 snipet
[0,1,2,3].reduce((acc, val, index) => {
console.log(index);
return acc;
});
Run Code Online (Sandbox Code Playgroud)
你会得到
1
2
3
Run Code Online (Sandbox Code Playgroud)
所以问题是为什么索引从1开始?
UPD:可能我错过了一些非常基本的东西,但是
[0,1,2,3].reduce((acc, val, index, initialValue) => {
console.log(index);
return acc;
});
Run Code Online (Sandbox Code Playgroud)
给我
1
2
3
0
Run Code Online (Sandbox Code Playgroud)
UPD2:所以是的,我错过了一些基本的东西。
[0,1,2,3].reduce((acc, val, index) => {
console.log(index);
return acc;
}, 0);
Run Code Online (Sandbox Code Playgroud)
因为你没有提供initialValue论据。从文档:
如果没有
initialValue提供,将使用并跳过数组中的第一个元素
进一步阅读,你的问题有一个直接的答案:
注意:如果
initialValue未提供,reduce()将从 index 开始执行回调函数1,跳过第一个索引。如果initialValue提供,它将从 index 开始0。
更多信息在这里
| 归档时间: |
|
| 查看次数: |
460 次 |
| 最近记录: |