在之前的文章《JS數(shù)組學(xué)習之清空全部元素的4種方法(代碼詳解)》中,我們刪除全部數(shù)組元素–即清空數(shù)組的4種方法。下面繼續(xù)JavaScript數(shù)組的學(xué)習,我們來聊聊一維數(shù)組、二維數(shù)組的創(chuàng)建和訪問,并擴充一下簡單聊聊多維數(shù)組。
首先我們來看看一維數(shù)組是怎么創(chuàng)建和訪問的。
一維數(shù)組的創(chuàng)建和訪問
一維數(shù)組有兩種創(chuàng)建方法:“數(shù)組直接量”和“Array()函數(shù)”。
1、數(shù)組直接量 “[]
”
1)我們可以直接使用“[]
”來給一個變量賦值,“[]”中可以是空的,那么就是定義空數(shù)組:
var a = []; //空數(shù)組
使用數(shù)組的length屬性來獲取數(shù)組長度,返回值會為0。
console.log(a.length);
此時我們可以使用 數(shù)組名[下標]=值
的形式給空數(shù)組賦值
a[0]=1; a[1]="hello";
數(shù)組下標不僅僅可以是數(shù)字,也可以為文本字符串,那么此時數(shù)組就是一個關(guān)聯(lián)數(shù)組
a["姓名"]="張三"; a["年齡"]=23;
如果數(shù)組的下標值超出范圍,如負數(shù)、浮點數(shù)、布爾值、對象或其他值,JavaScript 會自動把它轉(zhuǎn)換為一個字符串,并定義為關(guān)聯(lián)數(shù)組。
2)也可以直接定義數(shù)組并初始化
直接在“[]
”中包含多個值列表,值之間用逗號分隔即可。
var a = [1, 2, 3]; //包含具體元素的數(shù)組
使用數(shù)組的length屬性來獲取數(shù)組長度,返回值就是具體定義的數(shù)組元素數(shù)目。
2、使用new Array()
構(gòu)造數(shù)組
1)如果直接調(diào)用 Array() 函數(shù),不傳遞參數(shù),可以創(chuàng)建一個空數(shù)組。
var a = new Array(); //空數(shù)組
使用數(shù)組的length屬性來獲取數(shù)組長度,返回值會為0。
2)如果調(diào)用Array() 函數(shù)時,傳遞多個值(值之間用逗號分隔),可以創(chuàng)建一個實數(shù)組。
var a = new Array(1,2,3);
3)如果調(diào)用Array() 函數(shù)時,只傳遞一個數(shù)值參數(shù),那么就表示只定義了數(shù)組的長度,即包含元素的個數(shù);數(shù)組元素為空,每個元素的值默認值為 undefined。(數(shù)組中元素值沒有定義,在語法上兩個逗號之間沒有任何值的元素,被稱為空位元素)
var a = new Array(3);
像這種包含一個或多個空位元素的數(shù)組,也被稱為空位數(shù)組。
var a = [1, , 2];var a = [1, 2, 3]; delete a[1];也可產(chǎn)生空位元素,形成空位數(shù)組。
3、訪問數(shù)組
訪問數(shù)組就是訪問數(shù)組元素。我們可以使用 數(shù)組名[下標表達式]
的形式來進行訪問,讀寫數(shù)組。
注:下標表達式是值為非負整數(shù)的表達式。
例如上文中的
delete a[1]
就是使用delete關(guān)鍵字刪除a數(shù)組中下標為1的元素(即刪除第二個元素)。
還有:
var a = []; //空數(shù)組 a[0]=1; a[2]="hello";
就是分別為a數(shù)組中下標為0和2的元素賦值,下標為1的元素的值沒有賦值則為undefined。我們想要輸出指定數(shù)組元素時,也可使用這種形式
console.log(a[0]); //讀取第一個元素,返回值為1 console.log(a[1]); //讀取第二個元素,返回值為undefined console.log(a[2]); //讀取第三個元素,返回值為hello
二維數(shù)組的創(chuàng)建和訪問
JavaScript 并沒有直接支持二維數(shù)組,但是可以設(shè)置數(shù)組元素的值等于數(shù)組,這樣就能模擬二維數(shù)組的結(jié)構(gòu)。
1、定義二維數(shù)組
定義二維數(shù)組的方法1:
var a = []; a[0,0] = 1; a[0,1] = 2; a[1,0] = 3; a[1,1] = 4;
定義二維數(shù)組的方法2:
var a = [ //定義二維數(shù)組 [1.1, 1.2], [2.1, 2.2] ];
定義二維數(shù)組的方法3:
var a = new Array( [1.1, 1.2], [2.1, 2.2]); //定義二維數(shù)組
按照這種思想,如果二維數(shù)組中每個元素的值也為數(shù)組,則可以模擬三維數(shù)組,以此類推,通過數(shù)組嵌套的形式可以定義多維數(shù)組。
2、訪問二維數(shù)組
訪問二維數(shù)組甚至三維數(shù)組、多維數(shù)組的方法,和訪問一維數(shù)組的方法一樣,都是使用中括號進行訪問:
數(shù)組名[下標表達式1] [下標表達式2] 數(shù)組名[下標表達式1] [下標表達式2] [下標表達式3] ... 數(shù)組名[下標表達式1] [下標表達式2] [下標表達式3]...[下標表達式N]
更高維度的數(shù)組以此類推。
好了,就說到這里了,有需要的可以看:javascript高級教程