大白话理解Set结构
一、Set是什么?
set结构似于数组,但是成员的值都是唯一的,没有重复的值。
参数可以是数组,类似数组的对象,字符串。
eg: new Set([1, 2, 3, 4, 4]) ; new Set(document.querySelectorAll('div')); new Set(‘abbc’) ;
它是个构造函数,我们先来打印下
可以看到Set结构有个size的属性, 它的值是去重之后的length.
注:Set 不会发生类型转换,类似于===,但还是有部分区别,Set 认为NaN等于自身,而=== 认为NaN不等于自身。
二、转换类型
Set不是数组,那用什么方法转换为数组呢? ----- Array.from()
三、方法
.add(value):添加某个值,返回 Set 结构本身。
.delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
.has(value):返回一个布尔值,表示该值是否为Set的成员。
.clear():清除所有成员,没有返回值。
来个例子吧:
.keys():遍历键名、 .values():遍历键值、 .entries():遍历键值对、 .forEach():遍历每个成员
注:Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys
和values
方法,都是返回键值
entries返回的键、值都相同。
四、应用: