javascript - 比较两个数组时 JSON.stringify 不起作用

标签 javascript

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

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/

相关文章:

javascript - WordPress的tinyMCE错误 "SyntaxError: expected expression, got ' <' tinymce.min.js:1"

javascript - ;++ 运算符在 ;++this.length 语句中

javascript - 每次回复后提交 RSVP 表格 - 需要为家人一起提交所有回复

javascript - jQuery 更改事件未正确触发

javascript - Shadow dom 中 <table> 子元素的使用

javascript - 如何将当前日期作为值插入输入表单字段中

javascript - 单击按钮时显示阵列中的随机项目,而不是连续两个

javascript - 动画 <tr> 的大小

javascript - 通过数字比较缩短 if 语句

javascript - 排序输入框向上/向下移动仅适用于第一组按钮