为什么减少初始化的X长度数组不起作用?

时间:2017-05-28 11:01:13

标签: javascript

在尝试构建X长度的索引对象时,我意识到以下代码无法正常工作,但我无法理解为什么它没有:&/ t>

Array(X).reduce((acc, curr, index) => {
    console.log(acc, curr, index);
    return acc;
}, {});
// => Object {}

内部console.log应该为每次迭代打印值(X次),但看起来它从未被调用过,结果值只是我们作为参数传递给initialValue的值reduce方法。

有没有人可以解释为什么没有调用减速器?

1 个答案:

答案 0 :(得分:2)

没有调用它,因为你的数组实际上是空的。

  

如果传递给Array构造函数的唯一参数是整数   在0到232-1(含)之间,这将返回一个新的JavaScript数组   将其length属性设置为该数字(注意:这意味着一个   arrayLength空插槽数组,不是实际未定义的插槽   值

你可以这样做:

Array(X).fill().reduce(...)

请参阅Array.fill doc