千家信息网

Set是不是ES6的新特性

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇内容介绍了"Set是不是ES6的新特性"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Set是ES
千家信息网最后更新 2025年11月08日Set是不是ES6的新特性

本篇内容介绍了"Set是不是ES6的新特性"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Set是ES6的新特性。Set是ES6新增的数据结构,是一种有序列表集合,类似于数组,但是其成员的值都是唯一的,没有重复的值;set的遍历顺序就是插入顺序,set保存的一个函数列表调用时,就是按照指定的顺序进行调用,因此set类型是有序的。

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

Set是ES6的新特性。

Set 是 ES6 提供的新的数据结构,类似于数组,但是成员的值都是唯一的,没有重复的值。

Set本身是一个构造函数,用来生成Set数据结构。

// 创建Set实例let set1 = new Set();                           // {}let set2 = new Set([1,2,{name:'杰克'}]);        // {1,2,{name:'杰克'}}

set类型是es6中新增的有序列表集合,其中包含了一些相互独立的非重复值;set的遍历顺序就是插入顺序,set保存的一个函数列表调用时,就是按照指定的顺序进行调用,因此set类型是有序的。

Set的增删改查

Set的实例关于增删改查的方法:

  • add()

  • delete()

  • has()

  • clear()

add()

添加某个值,返回 Set 结构本身

当添加实例中已经存在的元素,set不会进行处理添加

s.add(1).add(2).add(2); // 2只被添加了一次

delete()

删除某个值,返回一个布尔值,表示删除是否成功

s.delete(1)

has()

返回一个布尔值,判断该值是否为Set的成员

s.has(2)

clear()

清除所有成员,没有返回值

s.clear()

Set的遍历

Set实例遍历的方法有如下:

关于遍历的方法,有如下:

  • keys():返回键名的遍历器

  • values():返回键值的遍历器

  • entries():返回键值对的遍历器

  • forEach():使用回调函数遍历每个成员

Set的遍历顺序就是插入顺序

keys方法、values方法、entries方法返回的都是遍历器对象

let set = new Set(['red', 'green', 'blue']);for (let item of set.keys()) {  console.log(item);}// red// green// bluefor (let item of set.values()) {  console.log(item);}// red// green// bluefor (let item of set.entries()) {  console.log(item);}// ["red", "red"]// ["green", "green"]// ["blue", "blue"]

forEach()用于对每个成员执行某种操作,没有返回值,键值、键名都相等,同样的forEach方法有第二个参数,用于绑定处理函数的this

let set = new Set([1, 4, 9]);set.forEach((value, key) => console.log(key + ' : ' + value))// 1 : 1// 4 : 4// 9 : 9

扩展运算符和Set 结构相结合实现数组或字符串去重

// 数组let arr = [3, 5, 2, 2, 5, 5];let unique = [...new Set(arr)]; // [3, 5, 2]// 字符串let str = "352255";let unique = [...new Set(str)].join(""); // ""

实现并集、交集、和差集

let a = new Set([1, 2, 3]);let b = new Set([4, 3, 2]);// 并集let union = new Set([...a, ...b]);// Set {1, 2, 3, 4}// 交集let intersect = new Set([...a].filter(x => b.has(x)));// set {2, 3}// (a 相对于 b 的)差集let difference = new Set([...a].filter(x => !b.has(x)));// Set {1}

扩展知识:

  • 普通数组和Set实例的互相转换

1.数组转为Set实例

let arr = [1,2,3];let set = new Set(arr);// {1,2,3}

2.Set实例转为数组

let set = new Set([1,2,3]);// {1,2,3}// 方式一 扩展运算符let arr = [...set];// [1,2,3]// 方式二 Array.from方法let arr = Array.from(set);// [1,2,3]

"Set是不是ES6的新特性"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

方法 顺序 实例 数组 成员 函数 就是 结构 特性 有序 数据 数据结构 知识 类型 交集 内容 字符 字符串 差集 布尔 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 任务计划程序安全数据库 算法工程师和软件开发 异地数据库同步 游戏软件开发公司简介 怎样确认数据库主备机 018网络安全知识答案 我的世界网易版服务器管理 国家怎么解决网络安全 黄浦区电商软件开发定制大概费用 网络安全和信息化工作月报 网络安全技术的基本问题 u8系统管理登录不到服务器 我的世界服务器刷凋零 中国灾害数据库 fm2013球员数据库 北京分发软件开发操作 宜兴银联网络技术服务成本 数据库系统综合实验原码 沃高网络技术北京有限公司 佛山创网网络技术有限公司 天堂W排队自动切服务器 荒野行动如何进入日本服务器 全大学习网络安全宣讲材料内容 网络安全等级测评机构目录 20名网络安全先进事迹 国家网络安全分级 株洲公安攻防演练网络安全检查 服务器是程序员弄的吗 数据库中事务怎么用 腾讯云服务器更换网站
0