1. 程式人生 > >Web開發——JavaScript基礎(數組)

Web開發——JavaScript基礎(數組)

javascrip 阿拉伯 eve 詭異 ber ron clas ava six

。  當前參考學習《JavaScript語言精粹》

1、數組字面量

  一個數組字面量是在一對方括號中包圍零個或多個用逗號分隔的值的表達式。數組字面量可以出現在任何表達式可以出現的地方。數組的第一個值將獲得屬性名‘0‘,第二個值將獲得屬性名‘1‘,依次類推:

 1 // numbers繼承來自Array.prototype,所以numbers繼承了大量有用的方法。
 2 // 同時numbers也有一個詭異的lenght屬相,而numbers_object則(見下文中)沒有
 3 var empty = [];
 4 var numbers = [
 5     ‘zero‘, ‘one‘, ‘two‘, ‘three‘, ‘four‘,
6 ‘five‘, ‘six‘, ‘seven‘, ‘eight‘, ‘nine‘ 7 ]; 8 9 console.log(‘1.1 ‘ + empty[1]); // undefined 10 console.log(‘1.2 ‘ + numbers[1]); // ‘one‘ 11 console.log(‘1.3 ‘ + empty.length); // 0 12 console.log(‘1.4 ‘ + numbers.length); // 10 13 14 // 對象字面量 15 // numbers_object繼承來自Object.prototype
16 var numbers_object = { 17 ‘0‘: ‘zero‘, ‘1‘: ‘one‘, ‘2‘: ‘two‘, ‘3‘: ‘three‘, ‘4‘: ‘four‘, 18 ‘5‘: ‘five‘, ‘6‘: ‘six‘, ‘7‘: ‘seven‘, ‘8‘: ‘eight‘, ‘9‘: ‘nine‘ 19 }; 20 21 // 在大多數語言中一個數組的所有元素都要求是相同的類型。 22 // JavaScript允許數組包含任意混合類型的值。 23 var misc = [ 24 ‘str‘, 98.6, true, false, null, undefined,
25 [‘nested‘, ‘array‘], {object: true}, NaN, Infinity 26 ]; 27 console.log(‘2.1 ‘ + misc.length);

  輸出結果:

1 1.1 undefined
2 1.2 one
3 1.3 0
4 1.4 10
5 2.1 10

2、長度

  每個數組都有一個length屬性。和大多數其它語言不同,JavaScript數組的length是沒有上界的。如果你用大於或等於當前length的數字作為下標來保存一個元素,那麽length將增大來容納新元素。不會發生數組邊界錯誤。

1 var myArray = [];
2 console.log("1 " + myArray.length);     // 0
3 
4 myArray[10000] = true;
5 console.log("2 " + myArray.length);     // 10001, myArray數組只包含一個屬性

  輸出結果:

1 1 0
2 2 10001

 1 // 可以直接設置length的值。
 2 // 設置大的length無須給數組分配更多的空間。
 3 // 而把length設小,將導致所有蝦苗大於等於新length的屬性被刪除
 4 numbers.length = 3;
 5 console.log(‘3.1 ‘ + numbers);
 6 // 附加一個新元素到該數組的尾部
 7 numbers[numbers.length] = ‘ten‘;
 8 console.log(‘3.2 ‘ + numbers);
 9 // 有時用push方法可以更方便地完成同樣的事情
10 numbers.push(‘go‘);
11 console.log(‘3.3 ‘ + numbers);

  輸出結果:

1 3.1 zero,one,two
2 3.2 zero,one,two,ten
3 3.3 zero,one,two,ten,go

3、刪除&枚舉(查詢)

 1 // 由於JavaScript的數組其實就是對象,
 2 // 所以delete雲算法可以用來從數組中移出元素
 3 // 不幸的是,那樣會在數組中遺留一個空洞
 4 delete numbers[2];
 5 console.log("4.1 " + numbers);
 6 
 7 // 幸運的是JavaScript數組有一個splice方法。
 8 // 它可以對數組做個手術,刪除一些元素並將它們替換為其它的元素
 9 // 第一個參數是數組中的一個序號,第二個參數是要刪除的元素個數
10 numbers.splice(2, 1);
11 console.log("4.2 " + numbers);

  輸出結果:

1 4.1 zero,one,,ten,go
2 4.2 zero,one,ten,go

  因為JavaScript的數組其實就是對象,所以for in語句可以用來遍歷一個數組的所有屬性。不幸的是,for in無法保證屬性的順序,而大多數的數組應用都期望按照阿拉伯數字順序來產生元素。因此可以用常規的for語句進行查詢使用。

1 // 查詢數組
2 for (var i = 0; i < numbers.length; i++) {
3     console.log("5.1 " + numbers[i]);
4 }

  輸出結果:

1 5.1 zero
2 5.1 one
3 5.1 ten
4 5.1 go

Web開發——JavaScript基礎(數組)