跳到主要内容

稀疏数组

稀疏数组就是其元素没有从 0 开始的索引的数组。

let a = new Array(5) // 没有元素,但a.length 是 5
a = [] // 创建一个空数组,此时length=0
a[1000] = 0 // 赋值添加了一个元素,但length变成了1001
// 省略数组字面量中的一个值,也会得到稀疏数组
let a1 = [,] // 这个数组没有元素,但length是1,不是2是因为数组允许最后一个元素保留逗号
let a2 = [undefined] // 这个数组有一个undefined元素
0 in a1 // ==> false:a1 在索引0没有元素
0 in a2 // ==> true: a2 在索引0有undefined值
  • 理解稀疏数组是理解 javascript 数组的重要一环。
  • 可以把稀疏数组当成包含 undefined 元素的非稀疏数组。
  • 足够稀疏的数组通常比密数组慢,但内存占用少的方式实现的,查询速度相当。