1. 程式人生 > >js 二維陣列 定義和初始化 三種方法

js 二維陣列 定義和初始化 三種方法

來源:http://hi.baidu.com/tang_guangyao/item/238af7f1f33b0631d6ff8ce7

方法一:直接定義並且初始化,這種遇到數量少的情況可以用

var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]]

方法二:未知長度的二維陣列

var tArray = new Array();   //先宣告一維

for(var k=0;k<i;k++){        //一維長度為i,i為變數,可以根據實際情況改變

 tArray[k]=new Array();    //宣告二維,每一個一維數組裡面的一個元素都是一個數組;

for(var j=0;j<p;j++){      //一維數組裡面每個元素陣列可以包含的數量p,p也是一個變數;

  tArray[k][j]="";       //這裡將變數初始化,我這邊統一初始化為空,後面在用所需的值覆蓋裡面的值

 }

}

給定義的陣列傳入所需的值

tArray[6][1]=5;//這樣就可以將5的值傳入到陣列中,覆蓋初始化的空

方法三:在這之前,以上兩者方法都有問題,方法二,每次定義都初始化了,雖然後面可以動態修改,但是還是不方法

所以我嘗試了一種動態傳入值到陣列的方法

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]

};

這種情況適用於已知幾個陣列,把他們組合成一個二維陣列情況