JavaScript 获取两个集合之间的差异
给定两个集合,任务是使用JavaScript计算两个集合之间的差集。这意味着我们减去的数组应该包含所有不在第二个数组中存在的唯一元素。
我们可以通过以下方法使用JavaScript获取两个集合之间的差异:
- 使用filter()方法
- 使用Set delete()方法
- 使用Set forEach()方法
方法1:使用filter()方法
- 将两个数组的值存储在两个变量中。
- 对于数组1的每个值,使用filter()方法,如果数组2中存在该值,则不包含在内。否则,包含数组1的值。
示例1: 在此示例中,使用filter()方法计算了集合的差异。
let A = [7, 2, 6, 4, 5];
let B = [1, 6, 4, 9];
function GFG_Fun() {
let diff = A.filter(x => !B.includes(x))
console.log("Set-Difference: " + diff);
}
GFG_Fun();
输出
Set-Difference: 7,2,5
示例2: 在这个示例中,使用 filter() 方法根据稍有不同的方式计算了集合的差异。
A = ["GFG", "GeeksForGeeks", "a", "b"];
B = ["gfg", "a", "b"];
function GFG_Fun() {
diff = A.filter(function (x) {
return B.indexOf(x) < 0
})
console.log("Set Difference: " + diff);
}
GFG_Fun();
输出
Set Difference: GFG,GeeksForGeeks
方法2:使用 Set 的 delete() 方法
JavaScript 中的 Set.delete() 方法用于删除集合中指定值的元素,并根据元素的可用性返回一个布尔值。
示例:
let A = [7, 2, 6, 4, 5];
let B = [1, 6, 4, 9];
const set1 = new Set(A);
const set2 = new Set(B);
const difference = new Set(set1);
for (const element of set2) {
difference.delete(element);
}
console.log([...difference]);
输出
[ 7, 2, 5 ]
方法3:使用set forEach()方法
set.forEach()方法用于对set中的每个值按插入顺序执行作为参数传递的函数。
示例:
let A = [7, 2, 6, 4, 5];
let B = [1, 6, 4, 9];
const set1 = new Set(A);
const set2 = new Set(B);
const difference = new Set();
set1.forEach(element => {
if (!set2.has(element)) {
difference.add(element);
}
});
console.log([...difference]);
输出
[ 7, 2, 5 ]