ES6 Set类型简述(类似数组的一种数据结构 成员不能重复) 以及利用Set进行数组去重

Set结构和数组结构很类似 但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。

Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。

Set 实例有以下属性:

Set.prototype.constructor:构造函数,默认就是Set函数。

Set.prototype.size:返回Set实例的成员总数。

四个操作方法:

add(value):添加某个值,返回 Set 结构本身。

delete(value):删除某个值,返回一个布尔值,表示删除是否成功。

has(value):返回一个布尔值,表示该值是否为Set的成员。

clear():清除所有成员,没有返回值。

四个遍历方法:

keys():返回键名的遍历器(由于Set 有键值 没键名 或者说键名和键值是同一个值 所以 和values()的行为一致

values():返回键值的遍历器(由于Set 有键值 没键名 或者说键名和键值是同一个值 所以 和keys()的行为一致

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

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

Set 结构的实例默认可遍历,它的默认遍历器生成函数就是它的values方法;这意味着,可以省略values方法,直接用for...of循环遍历 Set。


for...of循环遍历Set



Array.from(el)方法可以将set结构转换为数组 el参数为set对象

利用该方法和set的特性就可以写一个数组去重了。


利用set数组去重demo

也许还有更简单的办法,上面的写了一个的function 利用Array.from();也可以试着用一个...扩展运算符来搞一下去重。


...扩展运算符的去重demo

扩展运算符...和Set的结合,让数组的map和filter方法也可以间接用于 Set 了。利用Set 可以很容易地实现并集(Union)、交集(Intersect)和差集(Difference)。


扩展运算符...和Set的结合demo
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容