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

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


当前回答

一个简单的例子:

var blocks = [];

blocks[0] = [];

blocks[0][0] = 7;

其他回答

数组的行和列的大小只有在运行时才知道,那么下面的方法可以用来创建一个动态的2d数组。

var num = '123456'; 变量行 = 3;运行时已知 var col = 2;运行时已知 是 i = 0; var array2D = [[]]; for(var r = 0; r < row; ++r) { array2D[r] = []; for(var c = 0; c < col; ++c) { array2D[r][c] = num[i++]; } } console.log(array2D); [[ '1', '2' ], [ '3', '4' ], [ '5', '6' ]] console.log(array2D[2][1]);6

这并不是一个真正的答案,但也许根本就不要使用多维数组。你可以很容易地做一个更大的一维数组,并将索引器相乘,并通过该值进行索引!在我看来,那里更干净。

Array(m).fill(v).map(() => Array(n).fill(v))

你可以创建一个二维数组m x n,初始值m, n可以是任何数字v可以是任何值字符串,数字,未定义。

一种方法是var a = [m][n]

你也可以创建一个函数来创建一个2D数组,就像这样:

var myTable = [];

function createArray(myLength) {
    myTable = new Array(myLength);
    var cols, rows;
    for (cols = 0; cols < myLength; cols++) {
        myTable[cols] = new Array(myLength);
    }
}

您可以使用以下命令调用它,这将为您提供一个10x10的2D数组。

createArray(10);

您还可以使用此方法创建3D数组。

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

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