本篇文章主要是對js二維數組定義和初始化的三種方法進行了總結介紹,須要的朋友能夠過來參考下,但願對你們有所幫助數組
方法一:直接定義而且初始化,這種遇到數量少的狀況能夠用
var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]]ide
方法二:未知長度的二維數組
spa
複製代碼代碼以下:.net
var tArray = new Array(); //先聲明一維
for(var k=0;k<i;k++){ //一維長度爲i,i爲變量,能夠根據實際狀況改變htm
tArray[k]=new Array(); //聲明二維,每個一維數組裏面的一個元素都是一個數組;it
for(var j=0;j<p;j++){ //一維數組裏面每一個元素數組能夠包含的數量p,p也是一個變量;io
tArray[k][j]=""; //這裏將變量初始化,我這邊統一初始化爲空,後面在用所需的值覆蓋裏面的值
}
}
class
給定義的數組傳入所需的值
tArray[6][1]=5;//這樣就能夠將5的值傳入到數組中,覆蓋初始化的空變量
方法三:在這以前,以上二者方法都有問題,方法二,每次定義都初始化了,雖而後面能夠動態修改,可是仍是不方法float
因此我嘗試了一種動態傳入值到數組的方法
ps:一些在實踐過程當中遇到的數組有趣的現象
原本覺得二維數組能夠像下面這樣直接傳入值
複製代碼代碼以下:
for(var a=0;a<i;a++){
tArray[a]=(matArray[a],addArray[a]); //matArray[a]和addArray[a]是兩個數組,這兩個數組直接傳入tArray[a]中
};
結果是tArray[a]中收到的是後面一個數組的值,matArray[a]的內容被忽略的,若是換一個位置,matArray[a]在後面,則傳入的是addArray[a]的值。
思考:簡單的例子:
複製代碼代碼以下:
var a=[1,2];
var b=[];
b[0]=a;//把數組a做爲b數組的元素傳入b數組中
alert(b[0][1]); //2
上面是最簡單的二維數組,
上面例子換種寫法:
複製代碼代碼以下:
var b=[];
b[0]=[1,2];//把數組[1,2]做爲b數組的元素傳入b數組中
alert(b[0][1]); //2
能夠看出上面的b[0]=[1,2]是能夠用的
複製代碼代碼以下:
for(var a=0;a<i;a++){
tArray[a]=[ matArray[a],addArray[a] ]; 上面例子中的()修改成[] 就能夠成功的組成一個二維數組了
};
總結:方法三:
複製代碼代碼以下:
for(var a=0;a<i;a++){
tArray[a]=[ aArray[a],bArray[a],cArray[a]]; 還能夠增長dArray[a],eArray[a]
};
這種狀況適用於已知幾個數組,把他們組合成一個二維數組狀況
原文出處:http://www.jb51.net/article/47528.htm