▓▓▓▓▓▓ 大致介紹 除了Object之外,Array類型恐怕就是JavaScript種最常用的類型了,JavaScript中的數組與其他語言中的數組有很大的區別,例如,數組的每一項可以存放任何值,並且數組的大小事可以動態調整的 ▓▓▓▓▓▓ 創建數組的兩種方法 創建數組有兩種方法:一是用構造函數 ...
▓▓▓▓▓▓ 大致介紹
除了Object之外,Array類型恐怕就是JavaScript種最常用的類型了,JavaScript中的數組與其他語言中的數組有很大的區別,例如,數組的每一項可以存放任何值,並且數組的大小事可以動態調整的
▓▓▓▓▓▓ 創建數組的兩種方法
創建數組有兩種方法:一是用構造函數,二是用對象字面量的方法
構造函數方式
使用Array構造函數
var colors = new Array();
創建一個含有二十項的數組
var colors = new Array(20);
創建一個包含三項的數組
var colors = new Array("pink","black","white");
對象字面量方式
數組字面量由一對包含數組項的方括弧表示
var colors = ["red","blue","green"];
▓▓▓▓▓▓ length屬性
JavaScript數組中的length是沒有上界的,如果用大於當前length值的數字作為下標來儲存值,那麼數組就會被擴充來容納這個元素。
var empty = []; empty.length; //0 empty[100] = 'QQQ'; empty.length; //101 //[]後置下標運算符把它所包含的表達式轉換成一個字元串,如果該表達式有toString方法,就使用該方法的值 empty['100']; //QQQ
如果把length設小將導致所有下標大於等於新length的屬性被刪除
var numbers = [ 'zero','one','two','three','false','12' ]; numbers.length = 2; console.log(numbers); //["zero", "one"]
▓▓▓▓▓▓ in運算符
檢查某個鍵名是否存在的in運算符,也可以適用於數組
var myArray = [1,'2','name','23e']; 0 in myArray //true 2 in myArray //true 4 in myArray //false
註意:如果某個位置的值為0,也會返回false
var a = []; a[100] = 1; a[3] in myArray; //false
▓▓▓▓▓▓ 數組的遍歷
數組的遍歷通常是用for或者while迴圈,並不推薦for..in迴圈
var a = [1, 2, 3]; // for迴圈 for(var i = 0; i < a.length; i++) { console.log(a[i]); } // while迴圈 var i = 0; while (i < a.length) { console.log(a[i]); i++; } var l = a.length; while (l--) { console.log(a[l]); }
還有一種遍歷方法就是使用forEach(),在後面會講到
▓▓▓▓▓▓ 數組的空位
當數組的兩個逗號之間沒有任何值,那麼這個數組就有空位
數組的空位是不會影響length屬性,並且訪問空位會返回undefined,使用delete刪除數組元素,會返回空值
var myArray = [1,'2',,,]; console.log(myArray.length); //4 console.log(myArray[3]); //undefined
數組的某個位置是空位,與某個位置是undefined
,是不一樣的。如果是空位,使用數組的forEach
方法、for...in
結構、以及Object.keys
方法進行遍歷,空位都會被跳過
var a = [, , ,]; a.forEach(function (x, i) { console.log(i + '. ' + x); }) // 不產生任何輸出 for (var i in a) { console.log(i); } // 不產生任何輸出 Object.keys(a) // []
如果某個位置是undefined
,遍歷的時候就不會被跳過。
▓▓▓▓▓▓ 數組方法
我的這這篇博客詳細的寫了有關數組的方法,這裡就不在重覆http://www.cnblogs.com/qqandfqr/p/5558199.html
參考資料:
阮一峰JavaScript標準參考教程(alpha)-語法-數組
JavaScript語言精粹第六章
JavaScript高級程式設計(第三版)第五章 Array類型