Map&Set
Set
在了解set之前,先看下object。
由上面可以发现,获取的值是相同的,这是因为object的key是由进行类型转换,会转换成string.String({})
是"[Object Object]"
.
那么再来看看Set
可以发现Set
是不会进行转换。
我们还知道set
可以进行数组去重,如下
很棒对不对,但是值得注意的是: add添加的是一个整体。 所以数组去重最好在new的时候加入,并且set构造函数接受的参数只能是 可迭代的 . 如下:
如果真的需要对object进行set, 可以iterator他
set还有一些移除的方法,看下面:
delete
是移除对应的某一个, clear
是清空.
再来看看weakset
。
WeakSet
与Set
的区别.
new WeakSet && new Set 1. new WeakSet 支持空的[]作为参数,其他都不行 2. new Set 支持interator作为参数,其他都不行.
add 1. weakset 只支持add({} || []) 2. set 支持add all.
weakset不存在forEach方法
weakset不存在size方法(无效)
他们还有对引用类型上销毁的不同。
Map
map是一个健值对的有序列表,他的key类似于set,看下面的例子:
首先可以知道,map是通过set设置一个健值对,通过get获取value,并且如果获取不存在的健值对,返回的是一个undefined.而且也可以通过上面的两个对象key得知key是唯一的,不会转换成其他的类型。
map除了上面的一些方法,还有一些方法类似于set。
has(key)
确定是否存在这个keydelete(key)
删除某一个健值对clear()
删除所有的健值对size
有多少对健值对
初始化的时候也支持传入参数,但是这个参数必须是数组,数组里的每项也是一个数组
Last updated