在JavaScript中沒有二維陣列的概念
在編寫WebClinet端指令碼時有時需要用到陣列進行操作,javascript中宣告陣列的語法為
Dim 變數 = new Array();
需要注意的是,在javascript中沒有二維陣列的概念,只有一維。
例:
一維陣列生成、賦值、顯示方法
function GetArray()
{
var arr = new Array();
arr[0] = "0";
arr[1] = "1";
for(i=0;i<arr.length;i++)
{
alert(arr[i]);
}
}
// 二維陣列生成、賦值、顯示方法(此方法錯誤)
function Get2DArray()
{
alert('此種宣告、賦值、顯示二維陣列方法不合法');
var arr = new Array();
//int[][] arr = new Array();這種寫法根本不成立,不符合javascript語法,這樣寫會導致整個頁面的javascript指令碼都不能執行
arr[0][0] = 1;
arr[0][1] = 2;
arr[1][0] = 3;
arr[1][1] = 4;
for(i=0; i<arr.length;i++)
{
for(j=0; j<arr[i].length;j++)
{
alert(arr[i][j]);
}
}
}
這樣的寫法是宣告陣列的普遍方法(在其他語言中,尤其是被註釋掉的那種寫法),但事實證明這樣的寫法是不合法的,進一步說明javascript中沒有對二維陣列的定義。
想起一句老話“只有想不到,沒有做不到,凡是都有解決方法”。
一個變通的方法,給一維陣列的每個元素複製,其值也是一個一維陣列。
// 二維陣列生成、賦值、顯示方法(變通方法)
function Get2DArray2()
{
var arr = new Array();
arr[0] = new Array();
arr[1] = new Array();
arr[0][0] = "00";
arr[0][1]="01";
arr[1][0]="10";
arr[1][1]="11";
for(i=0; i<arr.length;i++)
{
for(j=0; j<arr[i].length;j++)
{
alert(arr[i][j]);
}
}
}