javascript给Set对象新增7个爆炸的方法,让你拥有更多摸鱼空间。

118 阅读3分钟

大家好,我是梦兽。一个 WEB 全栈开发和 Rust 爱好者。如果你对 Rust 非常感兴趣,可以关注梦兽编程公众号获取群,进入和梦兽一起交流。

JavaScript开发人员,欢呼吧!我们有了新的工具。让我们探索一下Set对象的惊人新增功能,使集合操作变得轻而易举。

1. intersection() :寻找共同点 🤝

这个方便的方法揭示了两个集合之间的共同元素。想象一下,就像一个Venn图,突出显示重叠区域。 在高中数学你可以认为交集。

让我们看看它在行动中:

const setA = new Set([1234]);
const setB = new Set([3456]);

const intersection = setA.intersection(setB)
// output:  Set {3, 4}

2. union()

union() 方法将两个集合的唯一元素合并到一个新的集合中。想想把两个组合并,只保留每个个体的一个实例。 在高中数学你可以认为并集。

const setA = new Set([123]);
const setB = new Set([345]);

const unionSet = setA.union(setB)
// output: Set {1, 2, 3, 4, 5}

3. difference():发现独特性➖

这种方法可以确定第一个集合中存在而第二个集合中不存在的元素。想象一下,它相当于从一个集合中减去另一个集合中的元素。 在高中数学你可以认为差集。

const setA = new Set([123]);
const setB = new Set([345]);

const differenceSetA = setA.difference(setB)
// Expected output: Set {1, 2}

const differenceSetB = setB.difference(setA)
// Expected output: Set {4, 5}

4. symmetricDifference():突出显示差异

这种方法强调的是两个集合之间的不同之处。它收集每个集合独有的元素,排除任何共享的元素。

const setA = new Set([123]);
const setB = new Set([345]);

const symmetricDifferenceSetA = setA.symmetricDifference(setB);
//  Expected output: Set {1, 2, 4, 5}

const symmetricDifferenceSetB = setB.symmetricDifference(setA);
//  Expected output: Set {4, 5, 1, 2}

5. isSubsetOf() 检查集合是否包含

这种方法确定一个集合的所有元素是否存在于另一个集合中。把它想象成检查一个小盒子是否完全装在一个大盒子里。

const setA = new Set([23]);
const setB = new Set([1234]);

const isSubset = setA.isSubsetOf(setB)
// Expected output: true

6. isSupersetOf() 被包含

正如其名称所暗示的那样,此方法是isSubsetOf()的反向。它检查一个集合是否包含另一个集合的所有元素。

const setA = new Set([1234]);
const setB = new Set([23]);

const isSuperset = setA.isSupersetOf(setB)
// Expected output: true

7. isDisjointFrom(): 识别分离

这种方法帮助我们找出两个集合是否有任何共同元素。

const setA = new Set([12]);
const setB = new Set([34]);
const setC = new Set([45]);

const areDisjoint1 = setA.isDisjointFrom(setB)
// Expected output: true

const areDisjoint2 = setB.isDisjointFrom(setC)
// Expected output: false

创建和维护这个博客以及相关的库带来了十分庞大的工作量,即便我十分热爱它们,仍然需要你们的支持。或者转发文章。通过赞助我,可以让我有能投入更多时间与精力在创造新内容,开发新功能上。赞助我最好的办法是微信公众号看看广告。

本文使用 markdown.com.cn 排版