1. 程式人生 > >在JavaScript中沒有二維陣列的概念

在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]);
        }
    }
}