我一直在网上阅读,一些地方说这是不可能的,一些地方说这是可能的,然后给出一个例子,另一些地方反驳这个例子,等等。

如何在JavaScript中声明一个2维数组?(假设这是可能的) 我如何访问它的成员?(myArray[0][1] or myArray[0,1]?)


当前回答

有人说这不可能是因为二维数组实际上就是数组的数组。这里的其他注释提供了在JavaScript中创建二维数组的完全有效的方法,但最纯粹的观点是,你有一个一维对象数组,每个对象都是由两个元素组成的一维数组。

这就是观点冲突的原因。

其他回答

类似于activa的答案,这里有一个创建n维数组的函数:

function createArray(length) {
    var arr = new Array(length || 0),
        i = length;

    if (arguments.length > 1) {
        var args = Array.prototype.slice.call(arguments, 1);
        while(i--) arr[length-1 - i] = createArray.apply(this, args);
    }

    return arr;
}

createArray();     // [] or new Array()

createArray(2);    // new Array(2)

createArray(3, 2); // [new Array(2),
                   //  new Array(2),
                   //  new Array(2)]

一个简单的例子:

var blocks = [];

blocks[0] = [];

blocks[0][0] = 7;

两行:

var a = []; 
while(a.push([]) < 10);

它将生成一个长度为10的数组a,其中充满数组。 (Push将一个元素添加到数组中并返回新的长度)

我发现下面是最简单的方法:

Var array1 = [[]]; Array1 [0][100] = 5; alert (array1 [0] [100]); 警报(array1.length); alert (array1 [0] . length);

二维数组的创建方式与一维数组相同。你像数组[0][1]一样访问它们。

var arr = [1, 2, [3, 4], 5];

alert (arr[2][1]); //alerts "4"