我一般很好奇第一个例子为什么不用默认值填充数组?
// first example
var arr = new Array(5);
var r = arr.map(function () { return 0; });
console.log(r); // []
// second example
var arr2 = Array.apply(null, Array(5));
var r2 = arr2.map(function () { return 0; });
console.log(r2); // [0, 0, 0, 0, 0]
答案 0 :(得分:1)
这是我在MDN关于Array.protoype.map的文章中找到的。
不会调用数组中缺少的元素(即,从未设置过的索引,已删除的索引或从未赋值的索引)。
使用Array构造函数初始化数组时,不会设置数组元素。
new Array(5)
的更好方法是Array.from({length: 5})
,适用于map
。