Set
Set是ES6引入新的数据结构,类似数组,但是它的元素成员是唯一的,Set本身是一个构造函数,可以直接用来生成一个Set数据结构:
因为它的每一个元素都是唯一的,那就可以给数组去重:
当然,去重后,返回的是一个Set结构的值,需要用Array.from()转化,才能得到我们想要的数组。
Set属性和方法
- 构造函数,默认就是Set函数
- size,返回Set实例的成员的数量
- add(item),添加set成员
- delete(item),删除set值
- has(item),判断一个值是否是set的成员
- clear(),清空set的值。
- keys(),遍历
- values()
- entries()
WeakSet
和Set类似,每一个成员都是唯一的,但是WeakSet的成员只能是对象,不能有其他类型的值。
WeakSet可以接受一个数组或者类数组的对象作为参数,如果入参是一个数组的话,那么成为WeakSet成员的是数组的元素,而不是数组本身,所以作为参数的数组元素只能是对象。
WeakSet有3个属性:
- add(vlaue),添加成员
- has(value),
- delete(value)
因为没有size,WeakSet不能遍历。
Map
对象,本质上就是键值对的集合,Map数据结构,类似对象,也是键值对的集合,但是它的key不限于字符串,各种类型的值都可作为key。
Map属性
- size(),返回map成员总数
- set(key,value)
- get(key)
- has(key)
- delete(key)
- clear()
方法
- keys()
- values()
- entries()
- forEach