稀疏数组
稀疏数组(Sparse Array):数组的 length 很大,但实际存在的元素很少,中间有“空位(empty)”
ts
const arr=[1, 2, , 4, 5]//控制台显示:[1,2,空白,4,5]
arr[2] // 空位输出:undefined创建稀疏数组
ts
new Array(10)
arr.length = 10
delete arr[2]
arr[100] = 1特点
- 有 length,但中间有“空位”
- 空位 ≠ undefined。读取结果是
undefined,但元素 不存在
ts
arr[1] === undefined // true
1 in arr // false- 多数数组方法会跳过空位
ts
const arr=[1, , 3]
arr.map(v => 6)//[6, 空白, 6]
arr.forEach(() => {
console.log('hi') //数组方法跳过空位,只打印了2次hi
})- for 循环会“访问”空位
ts
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]) // 空位会读到 undefined
}提示
工程中,我们应该避免使用稀疏数组
