我正在尝试比较两个数组,并检查它们是否相同。根据下面的逻辑,该函数应返回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/