gpt4 book ai didi

javascript - 如何在数组列表中找到公共(public)元素?

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

a = [1, 2, 3, 4, 5]
b = [1, 3, 6, 4, 5, 9]
c = [5, 4, 7, 9]
d = [1, 7, 5, 6, 9, 4]
e = [4, 3, 5, 7, 1]
f = [...]
.
.
(n = [n,n,n])

对于许多情况中的一种,我们有从 ae 的 5 个变量,我们希望从这 5 个数组中获取交集元素,而不必为每种情况编写嵌套的 for..loop。

请提出这个问题的理想解决方案。

最佳答案

先找出第一组和第二组的共同元素,再找出前一组共同元素与第三组的共同元素,以此类推。

var listOfArrays = [a, b, c, d, e, ...];
var commons = listOfArrays.slice(1).reduce(function(result, currentArray) {
return currentArray.filter(function(currentItem) {
return result.indexOf(currentItem) !== -1;
});
}, listOfArrays[0]);

这里,

currentArray.filter(function(currentItem) {...});

是负责查找两个数组 resultcurrentArray 之间的公共(public)元素的函数。

我们使用 Array.prototype.reduce,其中传递给它的函数返回的值将在下一次迭代中反馈给同一个函数。因此,我们继续将上一次迭代中的公共(public)元素提供给下一次迭代。

关于javascript - 如何在数组列表中找到公共(public)元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30939200/

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