JavaScript 中的七个新 Set 方法:`union()`、`intersection()`,以及其他五个

开发 前端
Set 从 ES6 就已经存在了,但通常它们只是用来确保列表中没有重复项。然而,随着这7个即将推出的内置 Set 方法,我们可能会发现自己更加频繁地使用它们。

我们坦诚一点:你可能对 Set 并不怎么关心!至少直到现在……

Set 从 ES6 就已经存在了,但通常它们只是用来确保列表中没有重复项。

然而,随着这7个即将推出的内置 Set 方法,我们可能会发现自己更加频繁地使用它们。

1. union()

Set 的新方法 union() 为我们提供了两个集合中所有唯一的元素。

并且由于它是不可变的并返回副本,你可以无限链式调用它:

const setA = new Set([1, 2, 3]);
const setB = new Set([3, 4, 5]);

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

2. intersection()

哪些元素同时存在于两个集合中?

const setA = new Set([1, 2, 3]);
const setB = new Set([2, 3, 4]);

const intersectionSet = setA.intersection(setB); // Set {2, 3}

3. difference()

difference() 方法执行 A - B,返回集合 A 中不在集合 B 中的所有元素:

const setA = new Set([1, 2, 3]);
const setB = new Set([2, 3, 4]);

const differenceSet = setA.difference(setB); // Set {1}

4. symmetricDifference()

正如 symmetric 所暗示的那样,此方法双向获取集合差集。即 (A — B) U (B — A)。

所有只存在于其中一个集合中的元素:

const setA = new Set([1, 2, 3]);
const setB = new Set([3, 4, 5]);

const symmetricDifferenceSet = setA.symmetricDifference(setB); // Set {1, 2, 4, 5}

5. isSubsetOf()

其目的很明确:检查一个集合的所有元素是否都在另一个集合中。

const setA = new Set([1, 2]);
const setB = new Set([1, 2, 3]);

const isSubset = setA.isSubsetOf(setB); // true

6. isSupersetOf()

检查一个集合是否包含另一个集合中的所有元素:这与 isSubsetOf() 中交换两个集合的作用相同:

const setA = new Set([1, 2, 3]);
const setB = new Set([1, 2]);

const isSuperset = setA.isSupersetOf(setB); // true

7. isDisjointFrom()

这些集合是否没有任何共同元素?

const setA = new Set([1, 2, 3]);
const setB = new Set([4, 5, 6]);

const isDisjoint = setA.isDisjointFrom(setB); // true

现在就使用它们

通过 core-js polyfills:

npm install core-js

图片图片

图片图片

否则你可能会在 TypeScript 和 Node.js 中遇到错误——因为它们尚未被正式纳入 JavaScript 标准。

图片图片

图片图片

总结

图片图片

以上就是我们介绍的 7 个新 Set 方法——再也不需要第三方库(如 Lodash 的 _.intersection())了!

责任编辑:武晓燕 来源: 大迁世界
相关推荐

2016-02-23 09:23:50

swift陷阱解决方法

2018-11-01 10:37:01

2024-01-31 12:13:02

JavaScriptSet元素

2024-03-21 14:27:13

JavaScript数组

2024-09-10 08:35:57

2022-10-08 23:46:47

JavaScript对象开发

2024-07-23 08:59:17

Set开发前端

2023-09-07 16:28:46

JavaScrip

2024-11-11 10:17:42

2024-05-24 12:06:26

SQL数据库

2023-03-24 07:30:53

JavaScript项目元框架

2024-08-30 14:29:03

2021-09-03 10:08:53

JavaScript开发 代码

2022-02-13 17:11:19

GNOME 42系统UI

2022-09-19 00:46:18

JavaScrip功能开发

2022-07-29 08:48:12

IT管理错误CIO

2024-08-16 09:14:53

2020-12-15 11:05:21

JavascriptChrome浏览器

2023-10-19 13:40:00

云计算云基础设施

2022-06-27 14:03:06

IT治理首席信息官
点赞
收藏

51CTO技术栈公众号