讀古今文學網 > 學習JavaScript數據結構與算法(第2版) > 2.2 創建和初始化數組 >

2.2 創建和初始化數組

用JavaScript聲明、創建和初始化數組很簡單,就像下面這樣:

var daysOfWeek = new Array; //{1}
var daysOfWeek = new Array(7); //{2}
var daysOfWeek = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday', 'Saturday'); //{3}

  

使用new關鍵字,就能簡單地聲明並初始化一個數組(行{1})。用這種方式,還可以創建一個指定長度的數組(行{2})。另外,也可以直接將數組元素作為參數傳遞給它的構造器(行{3})。

其實,用new創建數組並不是最好的方式。如果你想在JavaScript中創建一個數組,只用中括號()的形式就行了,如下所示:

var daysOfWeek = ;

  

也可使用一些元素初始化數組,如下:

var daysOfWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday', 'Saturday'];

  

如果想知道數組裡已經存了多少個元素,可以使用數組的length屬性。以下代碼的輸出是7

console.log(daysOfWeek.length);

  

訪問元素和迭代數組

要訪問數組裡特定位置的元素,可以用中括號傳遞數值位置,得到想知道的值或者賦新的值。假如我們想輸出數組daysOfWeek裡的所有元素,可以通過循環遍歷數組,打印元素,如下所示:

for (var i=0; i<daysOfWeek.length; i++){
  console.log(daysOfWeek[i]);
}

  

我們來看另一個例子:求斐波那契數列的前20個數字。已知斐波那契數列中第一個數字是1,第二個是2,從第三項開始,每一項都等於前兩項之和:

var fibonacci = ; //{1}
fibonacci[1] = 1; //{2}
fibonacci[2] = 2; //{3}

for(var i = 3; i < 20; i++){
  fibonacci[i] = fibonacci[i-1] + fibonacci[i-2]; ////{4}
}

for(var i = 1; i<fibonacci.length; i++){ //{5}
  console.log(fibonacci[i]);           //{6}
}

  
  • 在行{1}處,我們聲明並創建了一個數組。

  • 在行{2}和行{3},把斐波那契數列中的前兩個數字分別賦給了數組的第二和第三位(在JavaScript中,數組的第一位是0,這裡我們略過,從第二位開始分別保存斐波那契數列中對應位置的元素)。

  • 然後,我們需要做的就是想辦法得到斐波那契數列的第三到第二十位的數字(前兩個值我們已經初始化過了)。我們可以用循環來處理,把數組中前兩位上的元素相加,結果賦給當前位置上的元素(行{4}——從數組中的索引3到索引19)。

  • 最後,看看輸出(行{6}),我們只需要循環遍歷數組的各個元素(行{5})。

 示例代碼裡,我們用console.log來輸出數組中對應索引位置的值(行{5}和行{6}),也可以直接用console.log(fibonacci)輸出數組。大多數瀏覽器都可以用這種方式,清晰地輸出數組。

現在如果想知道斐波那契數列其他位置上的值是多少,要怎麼辦呢?很簡單,把之前循環條件中的終止變量從20改成你希望的值就可以了。