方法一:直接定義並且初始化,這種遇到數量少的情況可以用
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]};
這種情況適用於已知幾個數組,把他們組合成一個二維數組情況
JS 建立多維數組
<script> var allarray=new Array(); var res=""; function loaddata() { for(var i=0;i<3;i++) { var starth=i*200; var strarw=i*200; var endh=(i+1)*200; var endw=(i+1)*200; allarray[i]=new Array(); allarray[i][0]=new Array(); allarray[i][1]=new Array(); allarray[i][0][0]=starth; allarray[i][0][1]= strarw; allarray[i][1][0]=endh; allarray[i][1][1]=endw; } for(var i=0;i<allarray.length;i++) { var sh=allarray[i][0][0]; var sw=allarray[i][0][1] var eh=allarray[i][1][0]; var ew=allarray[i][ 1][1] res+="第"+i+"個座標的開始座標是:"+sh+","+sw+"結束座標是:"+eh+","+ew+"<br/>"; } document.getElementById("dv ").innerHTML=res; }</script>
補充資料:
這兩天做專案時,要透過js傳遞一個帶有字串鍵名的二維數組,可是傳遞到後台,卻得到了false,使用了很多種方法都不行,今天特地來介紹一下:js 數組初始化問題;
以及Ajax下傳遞帶有字串鍵名的陣列如何操作
一維數組:
一維數組可以用數字,字串做建名。
var data = [];//不知道個數
var data = new Array(); //不知道個數
如果知道個數,具體數值可以用:
var data = new Array(1);data['a'] = 'a';
或者
var data= ['a'];
二維數組:
二維數組不支援字串鍵名。
一:
var data = [];data.push(['a']);
或
var data_1 = ['a'];data[0]=data_1;
二:
var data=new Array();for(var i=0;i<2;i++){data[i]=new Array(); for(var j=0;j<2;j++){data[i] [j]=1;}
提醒:
在使用Ajax傳遞資料時,js數組必須是數字鍵名。
如果要使用字串做建名,要透過物件的形式:如下:
var data ={'a':{'id':1,'url':h}};
這篇文章介紹這了。
JS 二維數組的定義及長度判斷
動態定義二維數組:
1.先定義一維:
var arr = new Array();
2.定義二維:
arr[0] = new Array();
arr[1] = new Array();
3.給數組賦值:
arr[0][0] = "00";
arr[0][1] = "01";
arr[1][0] = "10";
arr[1][1] = "11";
4.判斷數組長度:
二維數組的行數:arr.length
對應行的列數:arr[0].length //第一行的長度以上例來算此值為2
5.數組的調用:
很簡單:var str = arr[0][0];