ES6_新增容器(十一)

容器

Set

数组去重复

1
2
3
4
5
6
7
8
//ES6之前
var obj = {};
[1,1,2,2].forEach(item=>obj[item]=1);
var arr2 = Object.keys(obj)

// ES6之后
var set = new Set([1,1,2,2])
var arr2 = [...set]

WeakSet

Map

  • set(key, value): 向 Map 中加入或更新键值对
  • get(key): 读取 key 对用的值,如果没有,返回 undefined
  • has(key): 某个键是否在 Map 对象中,在返回 true 否则返回 false
  • delete(key): 删除某个键,返回 true, 如果删除失败返回 false
  • clear(): 删除所有元素
1
2
3
let map = new Map()
map.set('a', '1');
console.log(map.get('a'))

WeakMap

  • 它的key必须是对象,value可以是任意的
  • 因为key是弱引用的,所以不可迭代

Map和Weakmap区别

  • Map 的键可以是任意类型,WeakMap 的键只能是对象类型
  • WeakMap 没有遍历方法