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

如何在javascript中声明二维数组?,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我想知道如何在java脚本中声明固定长度的二维数组 var array = new Array[this.rows, this.columns]; 然后我想得到每个维度的长度,比如 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 t

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

var array = new Array[this.rows, this.columns];
然后我想得到每个维度的长度,比如

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);
与C#不同,Javascript不支持多维数组


相反,您可以使用嵌套(“锯齿状”)数组。

这是@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]);
var arr=[];
对于(变量x=0;x<100;x++){
arr[x]=[];
对于(变量y=0;y<100;y++){
arr[x][y]=x*y;
}    
}
console.log(arr[10][11]);

此方法非常灵活,例如
arr[4]
可以将数组索引为10,而
arr[5]
可以将数组索引为1值,甚至可以是完全不同的类型,如字符串或数字。 ​

嵌套的3x3数组(属于未定义的
):

var-arr=新数组(3);
对于(变量i=0;i

var Matrix = function (rows, columns)  {
    this.rows = rows;
    this.columns = columns;
    this.myarray = new Array(this.rows);
    for (var i=0; i < this.columns; i +=1) {
        this.myarray[i]=new Array(this.rows)
    }
    return this.myarray;
}

var m = new Matrix(2,2);
m; // [[undefined, undefined], [undefined, undefined]];

var m2 = new Matrix(3,3);
m2; // [[undefined, undefined, undefined], [undefined, undefined, undefined], [undefined, undefined, undefined]]
var矩阵=函数(行、列){
this.rows=行;
this.columns=列;
this.myarray=新数组(this.rows);
对于(变量i=0;i
你能不能不这样做

var x = new Array(4);             #1st array, array of arrays                              
y = new Array(1, 4, 2, 0);       #2nd dimension of arrays, an array of values                  
z = new Array(4, 8, 3, 9);       #^^^                       
a = new Array(7, 0, 2, 4);       #^^^                  
t = new Array(9, 0, 3, 1);        #^^^
然后,要访问数组a(3)中的7(第一个值),您可以键入:

var example = x.3.1

如果这不起作用,请告诉我,因为这是我被告知的,我现在用它来编程我的游戏

谢谢Slaks,我如何得到每个维度的长度?没有每个维度的长度。它只是一个数组的数组;每个数组都有自己的长度。“Javascript不支持多维数组”-但是数组数组数组提供了多维数组的等价物,所以你可以说Javascript支持多维数组(即使它们不是真正的多维数组,我认为你的第一句话在这种形式下并不真正正确:)。(顺便说一句,我认为你的答案并没有真正回答这个问题。;)嗨,洛克塔,谢谢你,我喜欢这个演示,我如何获得阵列的尺寸?第一维和第二维?@Kathy假设阵列长度在数量上相等(想想棋盘8x8),您可以执行
arr.length
,和
arr[0]。length
。这将是“宽度”和“高度”的错误…不,这不起作用。这里有5个不同的数组,它们之间没有任何关联。我的答案有什么问题?适用于我的目的:tic-tac-toe-React教程。争用可能是每个子数组的索引数都是相同的。只有行和列相等时才有效。将for循环更改为for(var i=0;i