数组构造函数不按预期工作
这个问题在这里已经有了答案:
从MDN: this returns a new JavaScript array with length set to that number
由new Array(n)
创建的new Array(n)
没有任何元素,只有长度。 这就是为什么你不能映射(不存在)的元素。
map
跳过未定义的元素,通过设计。
从文档:
仅对已分配值的数组索引调用callback
这里有很多与这个主题有关的问题,并提供了创建映射将对所有元素进行操作的数组的方法,例如
new Array(3) . fill() . map(...
仅举一个例子,使用新的Array#填充方法。
除了CodeiSirs答案之外的一个例子:
// foo and bar are identical. They are arrays with length 3 and no indices.
var foo = new Array(3);
var bar = [];
bar.length = 3;
console.log(foo);
console.log(bar);
// This is different. It has 3 indices with the value undefined.
var pez = [undefined, undefined, undefined];
console.log(pez);
链接地址: http://www.djcxy.com/p/89705.html