gpt4 book ai didi

javascript - 解析数组的数组并返回公共(public)交集

转载 作者:行者123 更新时间:2023-11-28 11:14:47 29 4
gpt4 key购买 nike

我有一个像这样的数组

    arrays = [
['a', 'b', 'c', 'd'],
['a', 'b', 'c', 'g'],
['a', 'b', 'c', 'g', 'x'],
]

我需要形成一个包含所有交集的数组。像这样。

    function get_intersects(arrays) {
// return all intersections
return ['a', 'b', 'c', 'g'];
}

请注意 g 是如何返回的,即使它不在所有三个中,但至少在其中两个中存在。

这是我的尝试,但缺少 g

arrays = [
['a', 'b', 'c', 'd'],
['a', 'b', 'c', 'g'],
['a', 'b', 'c', 'g', 'x'],
]

function get_intersects(arrays) {
return arrays.shift().filter(function (v) {
return arrays.every((a) => a.indexOf(v) !== -1 );
});
}



console.log(get_intersects(arrays))

最佳答案

您还可以使用SetArray.filterArray.lastIndexOf :

let data = [ ['a', 'b', 'c', 'd'], ['a', 'b', 'c', 'g'], ['a', 'b', 'c', 'g', 'x'] ]

let result = [...new Set(data.flat().filter((x,i,a) => a.lastIndexOf(x) != i))]

console.log(result)

关于javascript - 解析数组的数组并返回公共(public)交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56639536/

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