如果我编写此代码:Array(3).map( () => ({ a:1 }) )
得到Array(3) [ <3 empty slots> ]
而不是3个对象的数组。为什么会这样?
据我所知,Array(3)
将产生长度为3的undefined
个元素的数组。例如,[1, 2, 3].map( () => ({ a:1 }) )
将产生预期的输出。使用长度为3的任何其他数组也是如此。我很感兴趣。
答案 0 :(得分:1)
Array(3)
创建一个长度为3的空数组。或者作为一个对象为{ length: 3 }
。与,例如Array(Array(3))
将创建一个包含undefined
个{ 0: undefined, 1: undefined, 2: undefined, length: 3 }
的数组。并且.map
仅迭代现有键。