Set 和 Map 数据结构

Set

Set 成员值唯一,没有重复的值,可以用来做数组和字符串去重。向 Set 加值不会发生类型转换,且对于重复添加 NaN,只会添加一个 NaNArray.from 可以把 Set 转换为数组。

  • size,返回实例的成员总数
  • add,添加值
  • delete(value),删除某个值,返回一个布尔值,表示删除成功
  • has(value),返回一个布尔值,表示该值是否为 Set 的成员
  • clear,清除所有成员,没有返回值
  • keys,返回键名的遍历器
  • values,返回键值得遍历器
  • entries(),返回所有成员的遍历器
  • forEach(),遍历 Set 的所有成员

Array.from() 有第二个参数,这个参数类似于 map

WeakSet

  • WeakSet 成员只能是对象,不能是其他类型值
  • 对象都是弱引用,即垃圾回收机制不考虑 WeakSet 对该对象的引用,也就是说,如果其他对象不再引用该对象,那么垃圾回收机制会回收该对象所占内存,不考虑对象还存在与 WeakSet 中。
  • WeakSet 可以接受一个数组或类似数组的对象作为参数。
  • 没有 size 属性,且无法遍历,是因为 WeakSet 成员是弱引用,可能遍历刚结束,成员就取不到

Map

  • size,返回实例的成员总数
  • delete(value),删除某个值,返回一个布尔值,表示删除成功
  • has(value),返回一个布尔值,表示该值是否为 Map 的成员
  • clear,清除所有成员,没有返回值
  • keys,返回键名的遍历器
  • values,返回键值得遍历器
  • entries(),返回所有成员的遍历器
  • forEach(),遍历 Map 的所有成员

WeakMap

基本上和 WeakSet 差不多

最后更新: 9/3/2019, 2:22:37 PM