如果您要在控制台中启动此片段,
[0,1,2,3].reduce((acc, val, index) => {
console.log(index);
return acc;
});
你会得到
1
2
3
那么问题是为什么索引从1开始?
UPD:可能我缺少一些非常基本的东西,但是
[0,1,2,3].reduce((acc, val, index, initialValue) => {
console.log(index);
return acc;
});
给我
1
2
3
0
UPD2:是的,这是我缺少的基本知识。
[0,1,2,3].reduce((acc, val, index) => {
console.log(index);
return acc;
}, 0);
因为您没有提供initialValue
参数。从文档:
如果未
initialValue
提供,则将使用和跳过数组中的第一个元素
进一步阅读,您的问题有直接答案:
注意:如果
initialValue
未提供,reduce()
将从索引index开始执行回调函数1
,跳过第一个索引。如果initialValue
提供,它将从index开始0
。
更多信息在这里
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句