JavaScript 如何执行两个集合的交集
两个集合的交集表示在两个集合中都存在的元素。在数学术语中,两个集合的交集用A ∩ B表示。这意味着集合A和集合B中共有的元素应该出现在一个单独的数组中。在Javascript中,两个集合的交集意味着获取两个集合中的公共元素。
我们可以通过多种方式找到两个集合的交集:
- Javascript Sets: Set可以存储任何类型的值,无论是基本类型还是对象。
- Javascript filter()方法: 从给定的数组中创建一个新数组,其中仅包含满足由参数方法设定的条件的元素。
- Javascript set.has()方法: 检查Set中是否存在具有指定值的元素。
使用Sets和has()方法: Set是一组唯一的项目,即没有重复的元素。ES6中的Set是有序的:可以按插入顺序迭代集合的元素。Set可以存储任何类型的值,无论是基本类型还是对象。
示例1: 在此示例中,我们将使用set.has()方法来查看集合的交集。
Javascript
function getIntersection(set1, set2) {
const ans = new Set();
for (let i of set2) {
if (set1.has(i)) {
ans.add(i);
}
}
return ans;
}
const set1 = new Set([1, 2, 3, 8, 11]);
const set2 = new Set([1, 2, 5, 8]);
const result = getIntersection(set1, set2);
console.log(result);
输出:
Set(3) { 1, 2, 8 }
使用 has() & filter() 方法: 我们检查元素是否同时存在于set1中,然后将该元素添加到新的集合中。
例子2: 在这个例子中,我们将使用 filter() 方法查看集合的交集。我们还使用了 spread operator 来分隔元素。
Javascript
let set1 = new Set([1, 2, 3]);
let set2 = new Set([4, 3, 2]);
let set = new Set([...set1].filter(x => set2.has(x)));
console.log(set);
输出:
Set(2) { 2, 3 }