我还没有找到最简单情况的答案。我知道有很多类似的问题,但它们都具有更高程度的复杂性。就我而言,这些数组在以下方面非常相似:
- 相同数量的元素
- 所有元素都属于同一类型,
- 元素仅由整数 0 和 1 组成
我的代码是:
var mearr = [
[1, 1, 0, 1, 1, 0],
[1, 1, 1, 0, 1, 0],
[1, 1, 1, 0, 0, 1],
[0, 1, 0, 0, 1, 1],
[1, 1, 1, 0, 1, 0],
[1, 0, 0, 1, 0, 1]
];
for (i=0;i<mearr.length/2;i++) {
var l = mearr[i];
var r = mearr[i+3];
var same = (l == r) ? "Same" : "different";
console.log(l, r, same);
}
我假设第二个和第五个元素会返回“Same”,但它们不会。
最佳答案
对于这种情况,我建议您 .join()
并作为字符串进行比较!
var mearr = [
[1, 1, 0, 1, 1, 0],
[1, 1, 1, 0, 1, 0],
[1, 1, 1, 0, 0, 1],
[0, 1, 0, 0, 1, 1],
[1, 1, 1, 0, 1, 0],
[1, 0, 0, 1, 0, 1]
];
for (i = 0; i < mearr.length / 2; i++) {
var l = mearr[i].join("");
var r = mearr[i+(mearr.length/2)].join("");
var same = (l == r) ? "Same" : "different";
console.log(l, r, same);
}
是的,耶!它有效:
110110 010011 different
111010 111010 Same
111001 100101 different
Note: As you said, this works only for an array with binary numbers like this. For this case only!
关于javascript - 如何比较两个数组是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34456565/