我有一个构造函数:
function a(x, y){\n
this.array[x][y];
for(var i = 0; i<x; i++){
for(var j = 0l j<y; j++){
this.array[i][j]=0;
}
}
}
我如何正确声明this.array? (this.array应该是一个多维数组。
答案 0 :(得分:1)
如果要初始化该数组,请使用以下方法:
+---- Length for outter array
|
v
this.array = Array.from({length: x}, () => Array(y).fill(0));
^
|
+--- This will initialize the nested arrays
function a(x, y){
this.array = Array.from({length: x}, () => Array(y).fill(0));
console.log(JSON.stringify(this.array, null, 2))
}
a(2, 3);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
答案 1 :(得分:0)
多维数组是数组数组
只声明一个数组,然后用里面的x数组填充它,每个数组都有y个元素。
要保持与提供的代码相同的样式,您可以执行类似这样的操作
function a(x, y){
var myArray = [];
for(var i = 0; i < x; i++){
myArray[i] = [];
for(var j = 0; j < y; j++){
myArray[i][j] = 0;
}
}
return myArray;
}
var exampleArray = a(3,4);
console.log(exampleArray);
&#13;
我把它写成你的代码片段以便理解。但是,有更好的方法(更清晰&#39;可能更高效,更多&#39; javascriptish&#39;)来编写数组。例如,请参阅Ele的答案。