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值的数组,或者甚至是完全不同的类型,例如字符串或数字.
嵌套的 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)