我正在学习写一个典型的游戏(2048)
我正在写一个函数,告诉当前4x4板上是否有空格。但每次调用noSpace()时,控制台都会显示以下错误:
未捕获的TypeError:无法读取未定义的属性“0”。(指向board [i] [j] == 0)
我在哪里弄错了?
function noSpace(board) {
for(var i = 0; i < 4; i++) {
for(var j = 0; j < 4; j++) {
if(board[i][j] == 0)
return false; //there is an empty grid
}
}
return true; //there is no empty grid
}
function gameStatus(board){
if(noSpace(board) && noMove(board))
alert("Game over!");
}
答案 0 :(得分:0)
这表示board [i]未定义,因此当代码尝试获取[j]属性时,未定义的对象上不存在。
要么检查为什么board [i]未定义,要么添加一个签入来处理空板。
function noSpace(board) {
for (var i = 0; i < 4; i++) {
for (var j = 0; j < 4; j++) {
if (board[i]) { //!Check board
if (board[i][j] == 0)
return false; //there is an empty grid
} else {
return false; //board is null
}
}
}
return true; //there is no empty grid
}