如何比较两个数组是否相等?

时间:2015-12-24 18:21:23

标签: javascript arrays

我没有找到最简单案例的答案。我知道有很多这样的问题但是所有问题都有更高的复杂程度。在我的例子中,阵列在以下方面非常相似:

  • 相同数量的元素
  • 所有元素属于同一类,
  • 元素仅由整数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);
}

我假设第二个和第五个元素将返回“相同”,但它们不会。

1 个答案:

答案 0 :(得分:1)

对于这种情况,我建议你.join()并比较为字符串!

Value_Num

是的,耶!它奏效了:

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);
}
  

注意:正如您所说,这仅适用于具有此类二进制数的数组。仅限这种情况!