如何在对象构造函数Javascript中放置多维数组

时间:2018-03-05 20:06:06

标签: javascript multidimensional-array

我有一个构造函数:

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应该是一个多维数组。

2 个答案:

答案 0 :(得分:1)

如果要初始化该数组,请使用以下方法:

                         +---- Length for outter array
                         |
                         v
this.array = Array.from({length: x}, () => Array(y).fill(0));
                                                ^
                                                |
                                                +--- This will initialize the nested arrays

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:0)

多维数组是数组数组

只声明一个数组,然后用里面的x数组填充它,每个数组都有y个元素。

要保持与提供的代码相同的样式,您可以执行类似这样的操作

&#13;
&#13;
    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;
&#13;
&#13;

我把它写成你的代码片段以便理解。但是,有更好的方法(更清晰&#39;可能更高效,更多&#39; javascriptish&#39;)来编写数组。例如,请参阅Ele的答案。