JavaScript進階之陣列

乘風而歸發表於2017-09-23

1.一起組團(什麼是陣列)

我們知道變數用來儲存資料,一個變數只能儲存一個內容。假設你想儲存10個人的姓名或者儲存20個人的數學成績,就需要10個或20個變數來儲存,如果需要儲存更多資料,那就會變的更麻煩。我們用陣列解決問題,一個陣列變數可以存放多個資料。好比一個團,團裡有很多人,如下我們使用陣列儲存5個學生成績。
這裡寫圖片描述

陣列是一個值的集合,每個值都有一個索引號,從0開始,每個索引都有一個相應的值,根據需要新增更多數值。

2.組團,並給團取個名(如何建立陣列)

使用陣列之前首先要建立,而且需要把陣列本身賦至一個變數。好比我們出遊,要組團,並給團定個名字“雲南之旅”。

建立陣列語法:

var myarray=new Array();

我們建立陣列的同時,還可以為陣列指定長度,長度可任意指定。

var myarray= new Array(8); //建立陣列,儲存8個資料。
注意:
1.建立的新陣列是空陣列,沒有值,如輸出,則顯示undefined。
2.雖然建立陣列時,指定了長度,但實際上陣列都是變長的,也就是說即使指定了長度為8,仍然可以將元素儲存在規定長度以外。

3.誰是團裡成員(陣列賦值)

陣列建立好,接下來我們為陣列賦值。我們把陣列看似旅遊團的大巴車,大巴車裡有很多位置,每個位置都有一個號碼,顧客要坐在哪個位置呢?

第一步:組個大巴車
第二步:按票對號入座
大巴車的1號座位是張三
大巴車的2號座位是李四
陣列的表達方式:

第一步:建立陣列var myarr=new Array();
第二步:給陣列賦值
myarr[1]=” 張三”;
myarr[2]=” 李四”;
下面建立一個陣列,用於儲存5個人的數學成績。

var myarray=new Array(); //建立一個新的空陣列
myarray[0]=66; //儲存第1個人的成績
myarray[1]=80; //儲存第2個人的成績
myarray[2]=90; //儲存第3個人的成績
myarray[3]=77; //儲存第4個人的成績
myarray[4]=59; //儲存第5個人的成績
注意:陣列每個值有一個索引號,從0開始。

我們還可以用簡單的方法建立上面的陣列和賦值:

第一種方法:

var myarray = new Array(66,80,90,77,59);//建立陣列同時賦值

第二種方法:

var myarray = [66,80,90,77,59];//直接輸入一個陣列(稱 “字面量陣列”)
注意:陣列儲存的資料可以是任何型別(數字、字元、布林值等)

4.團裡新增新成員(向陣列增加一個新元素)

上一節中,我們使用myarray變數儲存了5個人的成績,現在多出一個人的成績,如何儲存呢?
這裡寫圖片描述

只需使用下一個未用的索引,任何時刻可以不斷向陣列增加新元素。

myarray[5]=88; //使用一個新索引,為陣列增加一個新元素

5.呼叫團裡成員(使用陣列元素)

我們知道陣列中的每個值有一個索引號,從0開始,如下圖, myarray變數儲存6個人的成績:
這裡寫圖片描述
要得到一個陣列元素的值,只需引用陣列變數並提供一個索引,如:
第一個人的成績表示方法:myarray[0]
第三個人的成績表示方法:myarray[2]

6.瞭解成員數量(陣列屬性length)

如果我們想知道陣列的大小,只需引用陣列的一個屬性length。Length屬性表示陣列的長度,即陣列中元素的個數。

語法:
myarray.length; //獲得陣列myarray的長度

注意:因為陣列的索引總是由0開始,所以一個陣列的上下限分別是:0和length-1。如陣列的長度是5,陣列的上下限分別是0和4。

var arr=[55,32,5,90,60,98,76,54];//包含8個數值的陣列arr
document.write(arr.length); //顯示陣列長度8
document.write(arr[7]); //顯示第8個元素的值54

同時,JavaScript陣列的length屬性是可變的,這一點需要特別注意。
arr.length=10; //增大陣列的長度
document.write(arr.length); //陣列長度已經變為10

陣列隨元素的增加,長度也會改變,如下:
var arr=[98,76,54,56,76]; // 包含5個數值的陣列
document.write(arr.length); //顯示陣列的長度5
arr[15]=34; //增加元素,使用索引為15,賦值為34
alert(arr.length); //顯示陣列的長度16

7.二維陣列

一維陣列,我們看成一組盒子,每個盒子只能放一個內容。

一維陣列的表示: myarray[ ]
二維陣列,我們看成一組盒子,不過每個盒子裡還可以放多個盒子。

二維陣列的表示: myarray[ ][ ]
注意: 二維陣列的兩個維度的索引值也是從0開始,兩個維度的最後一個索引值為長度-1。

  1. 二維陣列的定義方法一

var myarr=new Array(); //先宣告一維
for(var i=0;i<2;i++){ //一維長度為2
myarr[i]=new Array(); //再宣告二維
for(var j=0;j<3;j++){ //二維長度為3
myarr[i][j]=i+j; // 賦值,每個陣列元素的值為i+j
}
}

注意: 關於for 迴圈語句,請看第四章4-5 。

將上面二維陣列,用表格的方式表示:
這裡寫圖片描述

  1. 二維陣列的定義方法二

var Myarr = [[0 , 1 , 2 ],[1 , 2 , 3]]

  1. 賦值

myarr[0][1]=5; //將5的值傳入到陣列中,覆蓋原有值。

說明: myarr[0][1] ,0 表示表的行,1表示表的列。

相關文章