我如何在javascript中声明二维数组?

21 javascript arrays multidimensional-array

我想知道如何在固定长度的java脚本中声明二维数组,如,

var array = new Array[this.rows, this.columns];
Run Code Online (Sandbox Code Playgroud)

之后,我想得到每个维度的长度,如,

array[0].length; // i am assuming this would give me the first dimension like in C# array.GetLength(0);
array[1].length; // i am assuming this would give me the second dimension like in C# array.GetLength(1);
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏,谢谢.

Lok*_*tar 34

一个关于@SLaks所指的锯齿状数组的简单例子.你基本上把数组放在一个数组中.下面的示例显示了一种制作100x100阵列的方法.

var arr = [];
for(var x = 0; x < 100; x++){
    arr[x] = [];    
    for(var y = 0; y < 100; y++){ 
        arr[x][y] = x*y;    
    }    
}

console.log(arr[10][11]);
Run Code Online (Sandbox Code Playgroud)

现场演示

这种方法非常灵活,例如arr[4]可以将索引为10的数组,并且arr[5]可以具有1值的数组,或者甚至是完全不同的类型,例如字符串或数字.


c24*_*24w 5

嵌套的 3x3 数组(的undefined):

var arr = new Array(3);
for (var i = 0; i < arr.length; ++i) {
  arr[i] = new Array(3);
}

console.log(arr);
Run Code Online (Sandbox Code Playgroud)


modle13 评论说你被限制在一个固定大小的子数组中,所以这里有一个快速调整来解决这个问题:

var nestedSizes = [3,5,1,4];
var arr = new Array(nestedSizes.length);
for (var i = 0; i < arr.length; ++i) {
  arr[i] = new Array(nestedSizes[i]);
}

console.log(arr);
Run Code Online (Sandbox Code Playgroud)