首页 > 解决方案 > 如果没有提供 reduce ,它如何决定它的初始值?

问题描述

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;
});

标签: javascriptecmascript-6ecma

解决方案


Array.prototype.reduce() 初始值(可选)

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


推荐阅读