方法一:直接定義並且初始化,這種遇到數量少的情況可以用
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 b=[];
b[0]=a;//把數組a當作b數組的元素傳入b數組中
alert(b[0][1]); //2
上面範例換種寫法:
b[0]=[1,2];//把數組[1,2]當作b數組的元素傳入b數組中
alert(b[0][1]); //2
tArray[a]=[ matArray[a],addArray[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>