Map

  1. ES6 提供了 `Map` 数据结构。它类似于 **对象** ,也是**键值对的集合**。但是 “键” 的范围**不限于字符串**,各种类型的值(包括对象)都可以当做键。 `Map` 也实现了 `iterator` 接口,所以可以使用 `...` `for...of...` 进行遍历。 `Map` 的属性和方法:
  • size:返回 Map 的元素个数
  • set:增加一个新元素,返回当前 Map
  • get:返回键名对象的键值
  • has:检测 Map 是否包含某个元素,返回 boolean
  • clear:清空集合,返回 undefined
  • delete:删除某个属性

基本使用:
  1. // 声明 Map
  2. let m = new Map()
  3. console.log(m,Object.prototype.toString.call(m)) // Map(0) {} "[object Map]"
  4. // 添加元素
  5. m.set('name','陈朝鸿')
  6. m.set('change',function() {
  7. console.log('我们可以改变你')
  8. })
  9. let key = {
  10. school: 'ATGUIGU'
  11. }
  12. m.set(key, ['北京','上海','深圳'])
  13. console.log(m) // Map(3) {"name" => "陈朝鸿", "change" => ƒ, {…} => Array(3)}
  14. // size
  15. console.log(m.size) // 3
  16. // 删除
  17. m.delete('name')
  18. console.log(m) // Map(2) {"change" => ƒ, {…} => Array(3)}
  19. // 获取
  20. console.log(m.get('change')) //ƒ () { console.log('我们可以改变你') }
  21. console.log(m.get(key)) // (3) ["北京", "上海", "深圳"]
  22. // 清楚
  23. // m.clear()
  24. console.log(m) //Map(0) {}
  25. for(let v of m) {
  26. console.log(v)
  27. }
  28. // (2) ["change", ƒ]
  29. // (2) [{…}, Array(3)]
  30. console.log(m) // Map(2) {"change" => ƒ, {…} => Array(3)}