javascript 2d数组错误

javascript 2d数组错误,javascript,arrays,multidimensional-array,undefined,Javascript,Arrays,Multidimensional Array,Undefined,我的目标如下: var tiles = { setupTiles : function() { this.board = []; for(var i = 0; i < 10; i++) { this.board[i] = []; } for(var i = 0; i < 10; i++) { for(var j = 0; j < 21; j++) { if(j == 20) { tiles.board[i][j] = new tile

我的目标如下:

var tiles = {
 setupTiles : function() {
 this.board = [];
 for(var i = 0; i < 10; i++) {
  this.board[i] = [];
 }
 for(var i = 0; i < 10; i++) {
   for(var j = 0; j < 21; j++) {
     if(j == 20) {
       tiles.board[i][j] = new tile("#000099", true);
     } else {
       tiles.board[i][j] = new tile("#000099", false);
     }
   }
 }
}
然后让我的程序运行一段时间,直到达到某个状态,然后调用:

function paintAll() {
 for(var i = 0; i < 10; i++) {
  for(var j = 0; j < 21; i++) {
   console.log(tiles.board[i][j]);
   ctx.fillStyle = tiles.board[i][j].color;
   ctx.fillRect(i*30, j*30, 30, 30);
  }
 }
}
请注意,在此函数调用之前,我没有更改tiles.board中的任何内容

任何帮助都会很好

for(var j=0;j<21;i++){

在这一行中,您正在递增
i
,而不是
j

正确的代码是:
for(var j=0;j<21;j++){

由于简单的打字错误(
i++
应该是
j++
function paintAll() {
 for(var i = 0; i < 10; i++) {
  for(var j = 0; j < 21; i++) {
   console.log(tiles.board[i][j]);
   ctx.fillStyle = tiles.board[i][j].color;
   ctx.fillRect(i*30, j*30, 30, 30);
  }
 }
}
TypeError: tiles.board[i] is undefined.