问题
一个长度为4空数组
用map()
给数组元素赋值
为什么新数组还是空的呢?
下面的代码为什么不输出[empty × 4] [2,2,2,2]
代码
var array = new Array(4);
var newArray = array.map(item=>{
return '2'
});
console.log(array,newArray);
// =>[empty × 4] [empty × 4]
解决
普通方法无法遍历稀疏数组,只能用1楼所说的特殊方法才能遍历
什么都没有的数组元素叫做槽(slot),一般方法都会忽略,可以用
Array.prototype.fill
、Array.from
或者[...arr]
的方式转换。比如
Array.from(new Array(4))