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

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

我假设第二个和第五个元素会返回“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/

相关文章:

javascript - jQuery 函数返回谷歌地图缩放级别

javascript - 如何使用 DOJO 动态显示和隐藏整个 TabContainer?

javascript - 在 Javascript 数组上生成事件

java - 将用户输入存储在不是从 0 开始的数组中

javascript - 将代理与 mobx 存储结合使用

javascript - 数据表更改列的顺序

javascript - 如何在 Angular 4中的扩展数据管道中设置区域设置?

java - for 循环是导致此代码中错误的原因吗?

javascript - 如何按数值对 2 个单独的数组进行排序?

javascript - 为像 php 这样的键填充一个 javascript 数组速记