Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

Is Set a new feature of ES6?

2025-01-28 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)05/31 Report--

本篇内容介绍了"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的新特性"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report