我有以下对象:
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中的任何内容
任何帮助都会很棒!
答案 0 :(得分:2)
for(var j = 0; j < 21; i++) {
在这一行中,您正在递增i
,而不是j
正确的代码是:
for(var j = 0; j < 21; j++) {