如果未提供,reduce如何确定其初始值?

时间:2018-06-27 15:17:00

标签: javascript ecmascript-6 ecma

未传递javascript的reduce函数如何确定其初始值?它是否只是默认为数字0

这两个为什么起作用:

[1, 2, 3, 4].reduce((sum, currentValue) => {
  return sum + currentValue;
});

[1, 2, 3, 4].reduce((string, currentValue) => {
  return `${string}` + currentValue;
});

但这不是吗?

[1, 2, 3, 4].reduce((object, currentValue) => {
  object[currentValue] = currentValue;
  return object;
});

1 个答案:

答案 0 :(得分:3)

Array.prototype.reduce() initialValue(可选)

  

用作回调的第一次调用的第一个参数的值。如果未提供初始值,则将使用数组中的第一个元素。在没有初始值的空数组上调用reduce()是错误的。