es6新增了Set、Map、WeekSet、WeekMap 四种数据结构。C#中有HashSet和Dictionary,HashSet和Dictionary都是范式集合,但是es6不支持接口开发,所以也就不存在范式。Set 是存唯一值的集合,Map是存键值对的集合。WeakSet、WeakMap分别是它们的弱式表现的兄弟,只能存对象数据结构,拥有的方法少很多,使用时需要注意。
1、set:存放代表唯一值的集合。这个唯一是使用Object.is()来判断的。撸起:
let
![ad691e613415cf6f107cf16a77b37c70.png](https://i-blog.csdnimg.cn/blog_migrate/a3c2969d9d7928a817be7cb46e0d65cb.jpeg)
let
2、WeakSet:存放代表唯一值的集合,是Set的弱化版本,只有add()、has()、delete()方法,不能迭代(foreach()、key()、values()等方法),不可以实例化的时候初始默认值,保存的值必须是对象数据结构。撸起:
let
3、Map:存放代表唯一值的集合,是Set的弱化版本,只有add()、has()、delete()方法,不能迭代(foreach()、key()、values()等方法),不可以实例化的时候初始默认值,保存的值必须是对象数据结构。撸起:
let
![04564ecbe619473379c62624ecd0e9f2.png](https://i-blog.csdnimg.cn/blog_migrate/fb43a45679451e0d9d2e0616835e9ac3.jpeg)
4、WeakMap:Map的弱表现数据结构,相对map来说,功能也是弱很多。
let
![842b4cd7feb8bfb4f165e8a128f3bdab.png](https://i-blog.csdnimg.cn/blog_migrate/44dca9c371a581cf0497a0e796d975cd.png)
Set、Map是es的一种新数据结构,类似于数组,但是key是唯一的。WeakSet、WeakMap请少用,因为它的key值要求比较特殊,一定得考虑好了再使用。