gpt4 book ai didi

javascript - 如何检查一个项目在javascript中的2个不同数组中的出现次数是否相同?

转载 作者:行者123 更新时间:2023-11-30 11:22:33 25 4
gpt4 key购买 nike

我有 2 个数组,如下所示:

arr1 = [a,b,c,a,c,b,a]arr2 = [b,b,a,a,a,b,c]

我正在检查两个数组中每个项目的出现次数是否相同

例如aarr1 中计数,arr2 是 3。如果它与 相同,则明智地想检查其余项目继续break 循环

      for(let i=0; i < this.arr1.length; i++){
for(let j=0; j < this.arr2.length; j++){
if(this.arr1[i] === this.arr2[j]){
let count1 = this.arr1.filter((t) => {
return t == this.arr1[i];
});

let count2 = this.arr2.filter((e) => {
return e == this.arr2[j];
});

if(count1.length !== count2.length){
// break the loops and return false
}
}
}
}

以上代码无法正常工作。我哪里做错了。

最佳答案

您可以使用哈希表并为一个数组向上计数,为另一个数组向下计数,并且只取值不为零的键。

var array1 = ['a', 'b', 'c', 'a', 'c', 'b', 'a'],
array2 = ['b', 'b', 'a', 'a', 'a', 'b', 'c'],
count = Object.create(null),
result;

array1.forEach(a => count[a] = (count[a] || 0) + 1);
array2.forEach(a => count[a] = (count[a] || 0) - 1);

result = Object.keys(count).filter(k => count[k]);

console.log(result);
console.log(count);

关于javascript - 如何检查一个项目在javascript中的2个不同数组中的出现次数是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49253008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com