储存键值对(key,value)数据集合的特点,其中键是不可重复的
map集合专门用于存储多个键值对数据。
在map出现之前,我们使用的是对象的方式来存储键值对,键是属性名,值是属性值。
使用对象存储有以下问题:
1. 键名只能是字符串
2. 获取数据的数量不方便
3. 键名容易跟原型上的名称冲突
map 与对象储存键值对的细微区别,对象更像是描述的是一个整体的数据,缺一不可,对象就像是就描述一个人,你不能让这个人少点啥,而map就像是发送请求的数据头,其中一些键值对可有可无,可以随意增加或减少,而且不会出问题

如何创建map

  1. new Map(); //创建一个空的map
  2. new Map(iterable); //创建一个具有初始内容的map,初始内容来自于可迭代对象每一次迭代的结果,但是,它要求每一次迭代的结果必须是一个长度为2的数组,数组第一项表示键,数组的第二项表示值
  3. const map = new Map([["a",1],["b",2],["c",3]])

如何进行后续操作

  • size:只读属性,获取当前map中键的数量
    - set(键, 值):设置一个键值对,键和值可以是任何类型
    - 如果键不存在,则添加一项
    - 如果键已存在,则修改它的值
    - 比较键的方式和set相同
    - get(键): 根据一个键得到对应的值
    - has(键):判断某个键是否存在
    - delete(键):删除指定的键
    - clear(): 清空map
    1. // set
    2. const map = new Map([["a",1],["b",2],["c",3]])
    3. map.set("d",4)
    1. // 遍历
    2. const map = new Map([["a",1],["b",2],["c",3]])
    3. console.log(map.size)
    4. // 使用解构将map中每一个小数组中的key 与 value 解构出来
    5. for (const [key,value] of map) {
    6. console.log(key,value)
    7. }
    8. // 第一项的值为value 第二项的值为key 第三项的值为 map本身
    9. map.forEach((value,key,self) =>{
    10. console.log(value,key,self)
    11. })