一般來說,JavaScript中的數組是稀疏的。
什么是稀疏呢?稀疏也就是說,數組中的元素之間可以有空隙,因為一個數組其實就是一個鍵值映射。
1、稀疏數組
首先來創建一個稀疏數組看看長什么樣
var arr = Array(3)
console.log(arr) //[empty × 3]
上面的代碼創建了一個長度為3的數組,但是當我們遍歷的時候會發現,他并沒有元素,所以js會默認跳過這些元素。這就是稀疏數組。
還可以以這種形式創建稀疏數據
var arr = []
arr[0] = 1
arr[100] = 2
console.log(arr) //[1, empty × 99, 2]
雖然數組的長度為101,但是實際元素只有兩個,這也是一種稀疏數組。
2、密集數組
創建一個密集數組試試看
var arr = Array.apply(null, Array(3));
console.log(arr) //[undefined, undefined, undefined]
解析:Array.apply(null, Array(3))
Array(3) 相當于var arr = new Array(3);
Array.apply(null,arr);相當于new Array(arr[0],arr[1],arr[2]);
arr雖然長度為3,但卻是一個稀疏數組,拿到的值都是undefind
你現在可以看到數組里面有真實元素了,雖然元素的值是undefined,但是你可以遍歷到這些數組元素了,還可以為每個元素重新賦值。