我有一个奇怪的问题。
我有一个“二维数组”,它以0和1的形式存储x-y详细信息。我正在检查给定坐标上任何“方向”上是否有0。
举例来说,这意味着如果我的数字是0-5,则超出范围。

这将使所有超出范围的检查均出现错误。但是它只在外部“ x数组”上给出,而不在内部“ y数组”上给出。

//x = 0, y = 0
if(visitedGrid[x][y-2] != undefined && visitedGrid[x][y-2] == 0){//here its fine
  unvisitedDirections[0] = 0;
}

if(visitedGrid[x-2][y] != undefined && visitedGrid[x-2][y] == 0){//here it gives an error
  unvisitedDirections[3] = 0;
}


如何解决此问题,从而不会出现错误?
我真的不知道该怎么办...

最佳答案

您需要检查visitedGrid[x-2]是否为数组,然后检查visitedGrid[x-2][y] == 0。检查它是否是数组很容易,只需使用Array.isArray。这样就可以是:

if(Array.isArray(visitedGrid[x-2]) && visitedGrid[x-2][y] == 0){//here it doesn't gives an error
  unvisitedDirections[3] = 0;
}

关于javascript - Javascript 2d数组:越界问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57601192/

10-09 18:24