当前位置: 首页 > news >正文

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

前端岗位内推来了

我们坦诚一点:你可能对 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

8a8f28413cdc1d9b315fede7b6466f15.png

fb6f6924664df46cbdab9733d803d057.png

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

3e73b0ab3289356929ddff83a6fb80d1.png

3b76b5d301659e57a50d121cda77e13d.png

总结

716561a2936ab34c5a87b25e09a60db5.png

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

最后:

CSS技巧与案例详解

vue2与vue3技巧合集

VueUse源码解读


http://www.mrgr.cn/news/10040.html

相关文章:

  • 聊聊场景及场景测试
  • 【STM32仿真】基于STM32单片机设计的秒表时钟计时器仿真系统——程序源码proteus仿真图设计文档演示视频等(文末工程资料下载)
  • ant-design 自定义选择框
  • APACHE NIFI学习之—编码解码功能
  • 2025届八股文:计算机网络高频重点面试题
  • 在CMD运行pip指令安装python的库时
  • 电商平台 API 接入的方式
  • CSRF简单介绍
  • kali 中文设置
  • Furion+SqlSugar环境配置与项目创建
  • BeanFactoryPostProcessor 和 BeanPostProcessor
  • Python开发中,SQLAlchemy 的同步操作和异步操作封装,以及常规CRUD的处理。
  • pikachu-Cross-Site Scripting通过攻略
  • 汉服文化平台网站
  • 微信小程序记录(持续更新)
  • C++ 设计模式——外观模式
  • 新手学习打怪之编译安装LAMP和LNMP
  • Linux 软件编程 数据库
  • 分布式搜索引擎 -- 搜索结果处理以及RestClient查询文档
  • 提高客服响应率的快捷回复软件