我是javascript的新手,我正在开发俄罗斯方块游戏。我写了一些代码并重用了其他网站的一些代码。但其中一个功能是给我带来了一些问题,而且我得到了一个错误,因为" undefined不是评估板[y] [x]"的对象。这段代码粘贴在下面:
var COLS=10, ROWS=20;
var board = [];
function run() {
ctx.clearRect( 0, 0, canvas.width, canvas.height );
ctx.strokeStyle = 'black';
for ( var x = 0; x < COLS; ++x ) {
for ( var y = 0; y < ROWS; ++y ) {
if ( board[ y ][ x ] ) {
ctx.fillStyle = colors[ board[ y ][ x ] - 1 ];
drawBlock( x, y );
}
}
}
}
我不理解为什么我会收到错误。我尝试在safari和IE 11中执行它,但结果是一样的。我甚至尝试在if语句中使用typeof关键字,但没有变化。任何人都可以帮我摆脱这个错误。
感谢
答案 0 :(得分:1)
如果您尚未正确初始化board[ y ][ x ]
变量,则无法执行board
。
您正在尝试执行下一行:
board [0][0]
以及javascript会做什么,首先它会尝试获取board[0]
undefined
,然后它会尝试undefined[0]
,这会触发错误:< / p>
undefined不是对象
在运行该循环之前,您应首先将一些数据放入board
数组中。