javascript 2d数组错误

时间:2018-01-19 12:13:37

标签: 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("#000099", true);
     } else {
       tiles.board[i][j] = new tile("#000099", false);
     }
   }
 }
}

我在调用中创建了2d数组:

tiles.setupTiles();

然后我让我的程序运行一段时间直到某个状态,然后调用:

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

但每隔11次调用tiles.board [i] [j]会产生

TypeError: tiles.board[i] is undefined.

请注意,在此函数调用之前,我还没有更改tiles.board中的任何内容

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:2)

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

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

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