检查2D阵列中的对角线

时间:2016-04-05 04:37:30

标签: javascript arrays multidimensional-array

我正在尝试在网格中找到模式XOOX的对角线。我有这个功能:

function chkDiagonal(token, x,y){
  if(x >= 0 && x - 2 >=0 && y >= 0){
     if(token === "X"){
         if(gameBoard[x][y]==="X" && gameBoard[x-1][y+1] === "O" 
           && gameBoard[x-2][y-2] === "O" && gameBoard[x-3][y+3]==="X"){
            return true;
           }
        }
     }
   }
 }

但如果我true已经X,我只会返回board[x-3][x+3]我无法弄清楚如何使其更加通用,以便它只关心已经有两个{{} 1}}对角线,而不是O's放在两端的顺序。有人可以告诉我如何处理这个问题吗?

我正在测试它:

X's

1 个答案:

答案 0 :(得分:1)

有两点需要指出。

  • 首先,在您的情况下,您需要检查gameBoard[x-2][y-2] gameBoard[x-2][y+2]
  • 其次,您应该在函数末尾添加return false,以便在检查失败时返回false。如果您没有添加return语句,它将不返回任何内容,因此undefined