在先前的文章《JS數組學習之清空全部元素的4種方法(程式碼詳解)》中,我們刪除全部數組元素--即清空數組的4種方法。以下繼續JavaScript數組的學習,我們來聊聊一維數組、二維數組的創建和訪問,並擴充一下簡單聊聊多維數組。
首先我們來看看一維數組是如何被建立和存取的。
一維陣列有兩種建立方法:「陣列直接量」和「 Array()函數」。
1、陣列直接量「[]
」
1) 我們可以直接使用「[]
」來給一個變數賦值,在「[]」中可以是空的,那麼就是定義空數組:
var a = []; //空数组
使用數組的length屬性來取得數組長度,回傳值會為0。
console.log(a.length);
此時我們可以使用陣列名[下標]=值
的形式給空數組賦值
a[0]=1; a[1]="hello";
陣列下標不只是可以是數字,也可以為文字字串,那麼此時陣列就是一個關聯數組
a["姓名"]="张三"; a["年龄"]=23;
如果陣列的下標值超出範圍,如負數、浮點數、布林值、物件或其他值,JavaScript 會自動將它轉換為字串,並定義為關聯陣列。
2)也可以直接定義陣列並初始化
直接在「[]
」中包含多個值列表,數值之間用逗號分隔即可。
var a = [1, 2, 3]; //包含具体元素的数组
使用陣列的length屬性來取得陣列長度,傳回值就是具體定義的陣列元素數量。
2、使用#new Array()
建構陣列
1)如果直接呼叫Array() 函數,不傳遞參數,可以建立一個空數組。
var a = new Array(); //空数组
使用陣列的length屬性來取得陣列長度,傳回值會為0。
2)如果呼叫Array() 函數時,傳遞多個值(值之間用逗號分隔),可以建立一個實數組。
var a = new Array(1,2,3);
3)如果呼叫Array() 函數時,只傳遞一個數值參數,那麼就表示只定義了陣列的長度,即包含元素的個數;陣列元素為空,每個元素的值預設值為 undefined。 (數組中元素值沒有定義,語法上兩個逗號之間沒有任何值的元素,被稱為空位元素)
var a = new Array(3);
像這種包含一個或多個空位元素的數組,也稱為空位數組。
var a = [1, , 2];var a = [1, 2, 3]; delete a[1];也可產生空位元素,形成空位數群組。
3、存取陣列
#存取陣列就是存取陣列元素。我們可以使用 數組名[下標表達式]
的形式來進行訪問,讀寫數組。
註:下標表達式是值為非負整數的表達式。
例如上文的
delete a[1]
就是使用delete關鍵字刪除a數組中下標示為1的元素(即刪除第二個元素)。
還有:
var a = []; //空数组 a[0]=1; a[2]="hello";
就是分別為a數組中下標為0和2的元素賦值,下標為1的元素的值沒有賦值則為undefined。我們想要輸出指定陣列元素時,也可使用這種形式
console.log(a[0]); //读取第一个元素,返回值为1 console.log(a[1]); //读取第二个元素,返回值为undefined console.log(a[2]); //读取第三个元素,返回值为hello
JavaScript 並沒有直接支援二維數組,但可以設定數組元素的值等於數組,這樣就能模擬二維數組的結構。
1、定義二維陣列
#定義二維陣列的方法1:
var a = []; a[0,0] = 1; a[0,1] = 2; a[1,0] = 3; a[1,1] = 4;
定義二維陣列的方法2:
var a = [ //定义二维数组 [1.1, 1.2], [2.1, 2.2] ];#
定义二维数组的方法3:
var a = new Array( [1.1, 1.2], [2.1, 2.2]); //定义二维数组
按照这种思想,如果二维数组中每个元素的值也为数组,则可以模拟三维数组,以此类推,通过数组嵌套的形式可以定义多维数组。
2、访问二维数组
访问二维数组甚至三维数组、多维数组的方法,和访问一维数组的方法一样,都是使用中括号进行访问:
数组名[下标表达式1] [下标表达式2] 数组名[下标表达式1] [下标表达式2] [下标表达式3] ... 数组名[下标表达式1] [下标表达式2] [下标表达式3]...[下标表达式N]
更高维度的数组以此类推。
好了,就说到这里了,有需要的可以看:javascript高级教程
以上是JS數組學習之一維和二維數組的創建和訪問的詳細內容。更多資訊請關注PHP中文網其他相關文章!