javascript – 数组构造函数未按预期工作

前端之家收集整理的这篇文章主要介绍了javascript – 数组构造函数未按预期工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Undefined values in Array(len) initializer4个
我想创建具有固定长度的空数组,然后使用.map返回新数组.但是,它没有按预期工作.

根据mdn docs

If the only argument passed to the Array constructor is an integer between 0 and 232-1 (inclusive),this returns a new JavaScript array with length set to that number.

new Array(3)返回[undefined×3].不应该是:[未定义,未定义,未定义]?

让我们考虑以下示例:

1)不工作.

var a = new Array(3);
a.map((x,i) => i); // [undefined × 3]

2)工作.

var a = Array.apply(null,new Array(3));
a.map((x,i) => i); // [0,1,2]

我在最新的Google Chrome Canary上测试了这个.

解决方法

MDN开始:这将返回一个长度设置为该数字的新JavaScript数组

由新Array(n)创建的Array没有任何元素,只有一个长度.这就是为什么你不能映射(不存在)元素.

原文链接:https://www.f2er.com/js/156734.html

猜你在找的JavaScript相关文章