为什么JavaScript reduce方法的当前索引参数从1开始?

Volodymyr I.

如果您要在控制台中启动此片段,

[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);
塞巴斯蒂安·卡兹马里克(Sebastian Kaczmarek)

因为您没有提供initialValue参数。从文档:

如果未initialValue提供,则将使用和跳过数组中的第一个元素

进一步阅读,您的问题直接答案:

注意:如果initialValue未提供,reduce()将从索引index开始执行回调函数1,跳过第一个索引。如果initialValue提供,它将从index开始0

更多信息在这里

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript reduce() - 为什么返回错误?

为什么在JavaScript中4294967295 >> 24 == -1?

为什么在JavaScript中“〜undefined”为-1?

JavaScript-为什么+!{} [0] == 1?

在JDBC中,为什么预处理语句的参数索引从1开始而不是0?

为什么这个 for 循环从索引 1 而不是索引 0 开始?

有什么方法可以查看Azure CosmosDB中的当前索引状态

为什么在JavaScript中(([[] === [])+ /-/)[1] ='a'和(1 + {})[(1 << 1)+1] ='b'是为什么?

为什么索引节点号从1开始而不是0?

JavaScript:为什么嵌套的reduce函数不能链接?

为什么在JavaScript中将“ reduce”和“ map”视为闭包?

JavaScript日期月份为零索引。...但是为什么呢?

为什么字符串索引在JavaScript数组中合法?

为什么索引会在javascript数组中自动创建?

记录数组索引,而不是值(JavaScript)-为什么?

为什么在JavaScript中“ 1” + +“ 1” =“ 11”但“ 1”--“ 1” = 2

为什么javascript getMonth从0开始计数,getDate从1开始计数?

为什么Javascript将0111数字参数更改为73

为什么 javascript 构造函数打印传递给它的参数?

javaScript函数-为什么我的默认参数失败?

为什么在JavaScript中可以在调用方中引用参数?

为什么我的javascript参数未定义?

JavaScript-为什么此闭包不保存参数?

为什么点符号对函数变量输入参数 Javascript 无效

为什么JavaScript bind()调用反向参数来起作用?

为什么要推送参数名称而不是元素?的JavaScript

Javascript为什么可以指定不带参数的回调?

基本的JavaScript,此函数为什么不传递参数

为什么事件参数在Javascript的匿名函数中是可选的?