【发布时间】:2017-11-15 21:37:47
【问题描述】:
这个谜题。
假设您新建了一个包含 1,000 个元素的数组,并希望使用 .map() 将每个元素的索引指定为元素的值。我希望它能够像这样工作:
new Array(1000).map((element, i) => i);
问题出在:尽管将 .map() 的返回值指定为数组索引,但返回的新数组虽然具有所需的 1,000 个元素,但却是空的。这可以通过链接.fill(0) 来解决,如下所示:
new Array(1000).fill(0).map((element, i) => i);
但是为什么呢?
为什么.map 或.filter 需要填充数组来生成填充数组?
【问题讨论】:
-
Jared Smith,是否有机会将已接受答案的文章重新命名为更能描述问题内容的内容?我认为我的标题比“怪异”更适合搜索。
-
你想要它是什么?
-
欢迎您批发我的头衔。我花了很长时间寻找这个问题的答案(因此是这个问题)。
标签: javascript arrays ecmascript-6