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

问题描述 投票:0回答:2

我有一个构造函数:

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

javascript multidimensional-array
2个回答
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);
.as-console-wrapper { max-height: 100% !important; top: 0; }

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);

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

© www.soinside.com 2019 - 2024. All rights reserved.