# ES6 Set 和 Map 数据结构
# 对比
数据接口 | 值类型 | 唯一性 | 引用类型 | demo |
---|---|---|---|---|
Set(可迭代对象) | 任意值 | 值唯一 | 强引用 | new Set([1,3,4,5]) |
WeakSet([对象]) | 值必须是引用类型 | 值唯一 | 弱引用 | new WeakSet([{name:1},[333,4444,555]]) |
Map([对象]) | key是任意值,值是任意值 | key唯一 | 强引用吗 | new Map([['name',1],[{phone:13545253491},'曹泽鹏']]) |
WeakMap([对象]) | key必须是引用类型,值是任意值 | key唯一 | 弱引用 | new WeakMap([[['肉','屎'],'狗'],[{phone:13545253491},'曹泽鹏']]) |
# 实例的方法
数据接口 | get | set | add | delete | has | clear | size | keys | values | entries | forEach |
---|---|---|---|---|---|---|---|---|---|---|---|
Set 成员不重复,直接add值 | x | x | y | y | y | y | y | y | y | y | y |
WeakSet 成员 | x | x | y | y | y | x | x | x | x | x | x |
Map | y | y | x | y | y | y | y | y | y | y | y |
WeakMap | y | y | x | y | y | x | x | x | x | x | x |