gpt4 book ai didi

javascript - 如何比较两个数组并找出有多少值相似?

转载 作者:行者123 更新时间:2023-11-28 11:30:06 27 4
gpt4 key购买 nike

我在查找如何使用函数比较 JavaScript 中的两个数组时遇到了一些问题。不仅要比较它们,还要找出有多少值是相似的。

我知道如何使用异常大的 if/else if 语句来做到这一点,但这会使代码变得垃圾且难以阅读。

例如:

var array1 = [1,2,3,4,5];
var array2 = [3,4,5,6,7];

在本例中,3、4 和 5 将是两个数组中表示的值,但是比较这两个数组并通过函数找出这一点的好方法是什么。

最佳答案

您可以使用reduce()来计算其中有多少个include()包含在另一个中:

var array1 = [1,2,3,4,5];
var array2 = [3,4,5,6,7];

let count = array1.reduce((count, item) => count + (array2.includes(item) ? 1 : 0), 0)
console.log(count)

如果array1可能有重复项,而您只想对它们计数一次。您可以使用集合:

var array1 = [1,2,3,4,5,1,2,5];
var array2 = [3,4,5,6,7];

let s2 = new Set(array2)

let count = [...new Set(array1)].reduce((count, item) => s2.has(item) ? count + 1 : count, 0)

// still 3
console.log(count)

关于javascript - 如何比较两个数组并找出有多少值相似?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53891064/

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