JS/TS:字符串的二维数组突然变得未定义时出错



我正在为Discord.js应用程序制作Connect 4游戏。我将游戏板保留为字符串的 2D 数组并像这样初始化它:

var board:string[][] = new Array<Array<string>>();
function resetBoard():void {
for(let i=0; i<numRows; i++){
board[i] = new Array<string>();
for(let j=0; j<cols; j++){
board[i].push(" ");
}
}
}

但是,当我尝试访问板的一部分时,它会抛出错误"无法读取未定义的属性'0'"。

function whatsAtPos(row, col){
return board[row][col];
}

所有函数都在同一个文件中,board[][] 是一个全局变量。我已经尝试了一切来修复它,但我不知道发生了什么。

我建议你:

  • 验证您在调用 whatsAtPos 之前调用了 resetBoard((
  • 验证在重置板"numRows"时,您使用的"cols"是否在调用之前是常量或不更改
  • 添加验证: 函数whatsAtPos关于类型的参数,并在函数期间验证行的值,col 将在 [0, numRows-1]、[0, cols-1] 的范围内

相关内容

最新更新