我想知道如何在固定长度的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);
感谢任何帮助,谢谢。
答案 0 :(得分: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]);
<强> Live Demo 强>
此方法非常灵活,例如arr[4]
可能有一个索引为10的数组,arr[5]
可能有一个值为1的数组,或者甚至是一个完全不同的类型,如字符串或数。
答案 1 :(得分:4)
嵌套的3x3数组(undefined
):
var arr = new Array(3);
for (var i = 0; i < arr.length; ++i) {
arr[i] = new Array(3);
}
console.log(arr);
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);
答案 2 :(得分:2)
与C#不同,Javascript不支持多维数组。
相反,您可以使用嵌套(“锯齿状”)数组。
答案 3 :(得分:2)
在javascript中:
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]]
答案 4 :(得分:-3)
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(第1个值),您可以输入:
var example = x.3.1
如果这不起作用请告诉我这是我被告知的以及我现在用来编程我的游戏