【发布时间】:2018-11-27 02:35:47
【问题描述】:
我可以使用Array() 来创建一个包含固定数量的未定义条目的数组。例如
Array(2); // [empty × 2]
但是如果我去使用 map 方法,比如说,在我的新数组上,条目仍然是未定义的:
Array(2).map( () => "foo"); // [empty × 2]
如果我复制数组,那么 map 确实有效:
[...Array(2)].map( () => "foo"); // ["foo", "foo"]
为什么我需要一个副本才能使用数组?
【问题讨论】:
-
[...Array(2)]的结果是什么 -
@Kain0_0 它是[未定义,未定义]。并且 Array.isArray(Array(2)) 是真的。
-
也可以使用
fill()。Array(2).fill("foo"); // ["foo", "foo"]只需小心传递要填充的对象,因为所有元素都是相同的引用 -
JavaScript 中没有像 index out of bound error 这样的东西。
标签: javascript arrays