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.