在游戏网格中检查垂直匹配时发生TypeError
TypeError when checking vertical matches in game grid
我有一个13x13多维数组,我正试图使用以下函数检查垂直匹配:
function verticalMatch(row, col){
for(var i = -1; i <= 1; i++) {
if (gameBoard[row + i][col]==="O" && gameBoard[row + i + 1][col] === "O"
&& gameBoard[row +i-1][col] === "X" && gameBoard[row +i+2][col] === "X" ||
gameBoard[row + i][col]==="O" && gameBoard[row + i - 1][col] === "O"
&& gameBoard[row +i-2][col] === "X" && gameBoard[row +i+1][col] === "X"){
return true;
}
}
return false;
}
我测试这个功能是这样的:
if(verticalMatch(x,y)===true){
console.log('Two O's between two X's vertically');
}
当我运行此代码时,我不断收到以下错误TypeError: Cannot read property '0' of undefined
。是什么导致了这个错误,它到底意味着什么?
根据您的row
值,您可以很容易地访问<例如,如果row === 1
,则在gameBoard[1 + -1 - 1]
处将存在与gameBoard[-1]
相同的接入。
发生此错误是因为您检查的行具有未定义的负索引。在检查gameBoard[row + i][col]
之前,请确保row + i >= 0
。如果它是阴性的,你不需要检查它,因为它不能容纳合适的部分。
相关文章:
- TypeError:无法读取属性'推'未定义的JavaScript
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 扩展SVGTextElement时出现Typescript Uncaught TypeError
- TypeError:在不兼容的接收器nodejs上调用了方法Uint8Array.length
- TypeError:_this.store.getState在使用来自Redux的连接时不是函数
- 跟踪jqplot垂直折线图的鼠标位置
- gulp Iconify任务抛出错误TypeError:Path必须是字符串.收到false
- Uncaught TypeError:undefined不是函数-ember js
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- 试图将onChange函数作为道具传递给GrandChlidren,结果是TypeError:这是未定义的
- Snap()方法导致Uncaught TypeError
- 如何设置自定义垂直滑块Jquery的动画
- Mongoose TypeError:实例化模式类型的对象时,对象不是函数
- 使用Jquery Issue垂直重新排序Divs
- jQuery使用ajax自动完成问题-TypeError:this.source不是函数
- 简单的垂直上一个和下一个按钮代码点击上下移动jQuery
- 无法将文本与图片垂直对齐
- 角度推入数组给出:TypeError:无法读取属性'推'的未定义
- CodeMirror.禁用垂直滚动条
- 在游戏网格中检查垂直匹配时发生TypeError