跳到主要内容

JavaScript 程序:演示不同的集合操作

要理解这个示例,你应该具备以下 JavaScript 编程 主题的知识:

示例 1:集合并集操作

// 执行并集操作
// 包含两个集合的所有元素
function union(a, b) {
let unionSet = new Set(a);
for (let i of b) {
unionSet.add(i);
}
return unionSet;
}

// 两组水果的集合
const setA = new Set(["apple", "mango", "orange"]);
const setB = new Set(["grapes", "apple", "banana"]);

const result = union(setA, setB);

console.log(result);

输出

Set {"apple", "mango", "orange", "grapes", "banana"}

集合并集操作将两个集合的元素合并成一个。

使用 new Set() 创建了一个新集合 unionSet。unionSet 变量包含 setA 的所有值。然后,使用 for...of 循环遍历 setB 的所有元素,并使用 add() 方法将它们添加到 unionSet 中。

集合不包含重复的值。因此,如果集合包含相同的值,则后来的值将被舍弃。

示例 2:集合交集操作

// 执行交集操作
// setA 中也在 setB 中的元素
function intersection(setA, setB) {
let intersectionSet = new Set();

for (let i of setB) {
if (setA.has(i)) {
intersectionSet.add(i);
}
}
return intersectionSet;
}

// 两组水果的集合
const setA = new Set(["apple", "mango", "orange"]);
const setB = new Set(["grapes", "apple", "banana"]);

const result = intersection(setA, setB);

console.log(result);

输出

Set {"apple"}

集合交集操作表示同时出现在 setA 和 setB 中的元素。

使用 new Set() 创建了一个新集合 intersectionSet。然后,使用 for...of 循环遍历 setB。对于每个同时出现在 setA 和 setB 中的元素,它们被添加到交集集合中。

示例 3:集合差集操作

// 执行差集操作
// setA 中不在 setB 中的元素
function difference(setA, setB) {
let differenceSet = new Set(setA);
for (let i of setB) {
differenceSet.delete(i);
}
return differenceSet;
}

// 两组水果的集合
const setA = new Set(["apple", "mango", "orange"]);
const setB = new Set(["grapes", "apple", "banana"]);

const result = difference(setA, setB);

console.log(result);

输出

Set {"mango", "orange"}

集合差集操作表示一个集合中存在而另一个集合中不存在的元素。

differenceSet 包含 setA 的所有元素。然后,使用 for...of 循环遍历 setB 的所有元素。如果 setB 中的元素也存在于 setA 中,则使用 delete() 方法删除该元素。

示例 4:集合子集操作

// 执行子集操作
// 如果 setB 的所有元素都在 setA 中则为真
function subset(setA, setB) {
for (let i of setB) {
if (!setA.has(i)) {
return false;
}
}
return true;
}

// 两组水果的集合
const setA = new Set(["apple", "mango", "orange"]);
const setB = new Set(["apple", "orange"]);

const result = subset(setA, setB);

console.log(result);

输出

true;

集合子集操作会在 setB 的所有元素都在 setA 中时返回 true。

使用 for...of 循环来遍历 setB 的元素。如果 setB 中存在的任何元素在 setA 中不存在,就会返回 false