以下a和c都為稀疏陣列,雖然陣列存在長度,但陣列單元並不存在。
var a = new array(3);
a; //[undefined × 3]
var b = [undefined, undefined, undefined];
b; //[undefined, undefined, undefined]
var c = ;
c.length = 3;
c; //[undefined × 3]
從es5規範開始允許在列表(陣列值,屬性列表等)末尾多加乙個逗號(但實際處理中會忽略不計)
[,,,,].length; //4
稀疏陣列的行為差異, es5提供的foreach,map,filter等方法並不會遍歷不存在的單元,而join方法由於內部實現的是for迴圈,因此並不存在這個問題:
[,,,].join("-"); //"--"
[undefined,undefined,undefined,].join("-"); //"--"
[,,,].map(function(v, i)); //[undefined × 3]
[undefined,undefined,undefined,].map(function(v, i)); //0 1 2 [undefined, undefined, undefined]
利用具有length屬性的類陣列物件,建立非空單元的陣列
a; //[undefined, undefined, undefined]
稀疏陣列,稀疏矩陣概念
稀疏矩陣 矩陣中非零元素的個數遠遠小於矩陣元素的總數,並且非零元素的分布沒有規律,通常認為矩陣中非零元素的總數比上矩陣所有元素總數的值小於等於0.05時,則稱該矩陣為稀疏矩陣 sparse matrix 該比值稱為這個矩陣的稠密度。稀疏陣列 稀疏陣列可以看做是普通陣列的壓縮,但是這裡說的普通陣列是值...
陣列轉稀疏陣列
針對於陣列轉稀疏陣列 壓縮 public static void main string args system.out.println system.out.println 稀疏陣列 將二維陣列轉換為稀疏陣列 先遍歷二維陣列 得到非0資料的個數 記錄非0資料 int sum 0 for int i...
kuangshenshuo 陣列 稀疏陣列
實現 public static void main string args system.out.println 轉換為稀疏陣列儲存 獲取有效值的個數 int sum 0 for int i 0 i 11 i system.out.println 有效值的個數 sum 2.建立乙個稀疏陣列的陣列並...