Javascript 将map函数链接到数组构造函数
为了找到一种方法来内联创建给定大小的数据数组,我尝试了Javascript 将map函数链接到数组构造函数,javascript,arrays,map,inline,Javascript,Arrays,Map,Inline,为了找到一种方法来内联创建给定大小的数据数组,我尝试了 var n = 4; var data = (new Array(n)).map(function(x) { return 1 }); 这给了我 [undefined, undefined, undefined, undefined] 关于此, new Array(n) 给予 那 [undefined, undefined, undefined, undefined].map(function(x) { return 1 }); 返
var n = 4;
var data = (new Array(n)).map(function(x) { return 1 });
这给了我
[undefined, undefined, undefined, undefined]
关于此,
new Array(n)
给予
那
[undefined, undefined, undefined, undefined].map(function(x) { return 1 });
返回
[1, 1, 1, 1]
我希望能够链接数组构造函数和map函数
对该行为有何见解?新数组(n)
创建一个大小为n
的数组,但其中不包含任何元素。这称为稀疏数组。虽然数组中没有元素,但浏览器将它们表示为未定义的
。和Array.prototype.map
将忽略尚未定义的数组元素
引述
仅对实际存在的数组元素调用callbackfn;对于数组中缺少的元素,不会调用它
为了能够链接map
函数,您可能需要这样做
console.log(Array.apply(null, {length: n}).map(function(x) { return 1 }));
# [ 1, 1, 1, 1 ]
谢谢我还注意到浏览器的表示形式实际上是不同的(Chrome):新数组(2)返回[undefined x2]而不是[undefined,undefined]
console.log(Array.apply(null, {length: n}).map(function(x) { return 1 }));
# [ 1, 1, 1, 1 ]