我正在尝试比较两个数组,并检查它们是否相同。根据下面的逻辑,该函数应返回DRAW,因为我要比较的数组完全相同。它返回undefined。我无法弄清楚为什么它不返回平局。如果我将&&更改为||它返回绘制,所以我认为逻辑运算符存在问题。



function isSolved(board) {

  // TODO: Check if the board is solved!
  var arraya = [1,1,1];
  var arrayb = [2,2,2];

  for (var i = 0; i < board.length; i++){

    for (var j = 0; j < board[i].length; j++) {
      if (board[i][j] === 0) {
        return false;
      } else if (
        (JSON.stringify(board[i]) === JSON.stringify(arraya))
        && (JSON.stringify(board[i]) ===JSON.stringify(arrayb))) {
        return "draw"
      }
    }

  }

}

console.log(
  isSolved([
    [1,1,1],
    [1,2,2],
    [2,2,2]
  ])
);

最佳答案

您可以这样使用JSON.stringify



var arraya = [1,1,1];
var arrayb = [2,2,2];

function isSolved(a, b) {
  return JSON.stringify(a) === JSON.stringify(b) ? "draw" : false;
};

var input = [[1,1,1], [1,2,2], [2,2,2]];

for (var item of input) {
  console.log(isSolved(item, arraya));
  console.log(isSolved(item, arrayb));
  console.log("=====");
}

关于javascript - 比较两个数组时,JSON.stringify无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59539366/

10-10 03:15