如何用二维数组实例化一个 class 对象?

How to instantiate a class object with a 2 dimensional array?

我正在尝试用二维数组实例化一个对象,但以下代码似乎不起作用:

class Board {
  constructor(row,col){
    this.board=[];
    for (var i=0; i<row; i++){
      for (var y=0; y<col; y++){
        this.board[i][y]=0;
      }
    }
  }
}

var board = new Board(10,10);

https://jsbin.com/worepeb/edit?js,console

您需要先初始化子数组,然后才能用数字填充它 - this.board[i] = [];:

class Board {
  constructor(row,col){
    this.board=[];
    for (var i=0; i<row; i++){
      this.board[i] = []; // init this.board[i]
      for (var y=0; y<col; y++){
        this.board[i][y]=0;
      }
    }
  }
}

var board = new Board(10,10);

console.log(board);

你也可以使用Array.from()来初始化板子:

class Board {
  constructor(row,col){
    this.board = Array.from({ length: row }, () => 
      Array.from({ length: col }, () => 0)
    );
  }
}

const board = new Board(10,10);

console.log(board);