当前位置: 首页 > 知识库问答 >
问题:

JS:检查javascript中两个数组的区别

元望
2023-03-14

输出为真或假的两个不同的数组。用函数this my code比较两个数组:

    var cekDiff = function (arr1, arr2) {
    var maxLength = 0,
        cekTrue = 0;
    if (arr1.length > arr2.length) maxLength = arr1.length;
    else maxLength = arr2.length;
    for (var i = 0; i < maxLength; i++) {
        if (arr1[i] == arr2[i]) {
            cekTrue++;
        }
    }
    if (cekTrue >= maxLength) return true;
    else return false;
}


if (cekDiff([0, 1, 2, 4, 3], [0, 1, 2, 3, 4])) {
    console.log("match");
} else {
    console.log("different");
}

共有3个答案

陆高峰
2023-03-14

您可以通过递增或递减来计算每个元素。然后获取值,如果全部为零,则返回 true

function sameValues(a, b) {
    const
        counter = (o, i) => k => o[k] = (o[k] || 0) + i,
        count = {};
    
    a.forEach(counter(count, 1));
    b.forEach(counter(count, -1));
    
    return !Object.values(count).some(Boolean);
}


console.log(sameValues([0, 1, 2, 4, 3], [0, 1, 2, 3, 4]));
console.log(sameValues([0, 1, 2, 4, 3], [0, 1, 2, 3, 4, 5]));
公冶威
2023-03-14

使用reduce检查您的阵列

const isArrayExact = (arr1, arr2) => arr1.reduce((acc, curr, index) => acc && ,true)

比较每个元素,但检查是否存在

有宏邈
2023-03-14

您非常接近,因为两个数组的值顺序不同,并且您是按索引匹配的(newArr1[i]==newArr2[i]),所以您需要先对数组排序,然后检查是否相等

js prettyprint-override">var cekDiff = function(arr1, arr2) {
  let newArr1 = [...arr1].sort((a, b) => a - b)
  let newArr2 = [...arr2].sort((a, b) => a - b)
  var maxLength = 0,
    cekTrue = 0;
  if (newArr1.length > newArr2.length) maxLength = arr1.length;
  else maxLength = newArr2.length;
  for (var i = 0; i < maxLength; i++) {
    if (newArr1[i] == newArr2[i]) {
      cekTrue++;
    }
  }
  if (cekTrue >= maxLength) return true;
  else return false;
}


if (cekDiff([0, 1, 2, 4, 3], [0, 1, 2, 3, 4])) {
  console.log("match");
} else {
  console.log("different");
}
 类似资料:
  • 问题内容: 我想检查两个数组是否相等。我的意思是:相同的大小,相同的索引,相同的值。我怎样才能做到这一点? 根据用户的建议,如果数组中的至少一个元素不同,我希望以下内容可以打印 enter ,但实际上没有。 问题答案: $arraysAreEqual = ($a == $b); // TRUE if $a and $b have the same key/value pairs. $arraysA

  • 在JavaScript中,检查两个数组是否具有相同/相等的值(以任何顺序)的最佳方法是什么? 这些值只是数据库实体的主键所以它们总是不同的 方法应该是什么样子的? 另外,这个问题看起来像是重复的,但我没有找到任何与Javascript相关的东西。

  • 我有一个简单的javascript问题,我真的需要一些帮助!我正在尝试弄清楚如何在数组之间比较元素,以及在下一个循环中再次比较较大的元素。假设我们有数组A和数组B。 我的问题是,在比较索引处的元素之后,我希望在下一个循环周期中比较较大的元素。 如果A=[5,7,4],B=[2,8,5] 在第一个循环中,5与2进行比较,2较小,因此会发生一些事情。在下一个循环周期中,我希望5与8进行比较,而对于现在

  • 以上数组根据id分成两个数组 请问应该怎么解决?

  • 问题内容: 我有两个非常大的numpy数组,它们都是3D的。我需要找到一种有效的方法来检查它们是否重叠,因为首先将它们都转换为集合会花费很长时间。我尝试使用在此找到的另一个解决方案来解决相同的问题,但适用于2D阵列,但是我没有设法使其适用于3D。这是2D解决方案: (其中A和B是2D数组)我需要找到重叠的numpy数组的数量,而不是特定的数组。 问题答案: 我们可以利用我在一些问答中使用过的辅助功