储存键值对(key,value)数据集合的特点,其中键是不可重复的
map集合专门用于存储多个键值对数据。
在map出现之前,我们使用的是对象的方式来存储键值对,键是属性名,值是属性值。
使用对象存储有以下问题:
1. 键名只能是字符串
2. 获取数据的数量不方便
3. 键名容易跟原型上的名称冲突
map 与对象储存键值对的细微区别,对象更像是描述的是一个整体的数据,缺一不可,对象就像是就描述一个人,你不能让这个人少点啥,而map就像是发送请求的数据头,其中一些键值对可有可无,可以随意增加或减少,而且不会出问题
如何创建map
new Map(); //创建一个空的map
new Map(iterable); //创建一个具有初始内容的map,初始内容来自于可迭代对象每一次迭代的结果,但是,它要求每一次迭代的结果必须是一个长度为2的数组,数组第一项表示键,数组的第二项表示值
const map = new Map([["a",1],["b",2],["c",3]])
如何进行后续操作
- size:只读属性,获取当前map中键的数量
- set(键, 值):设置一个键值对,键和值可以是任何类型
- 如果键不存在,则添加一项
- 如果键已存在,则修改它的值
- 比较键的方式和set相同
- get(键): 根据一个键得到对应的值
- has(键):判断某个键是否存在
- delete(键):删除指定的键
- clear(): 清空map// set
const map = new Map([["a",1],["b",2],["c",3]])
map.set("d",4)
// 遍历
const map = new Map([["a",1],["b",2],["c",3]])
console.log(map.size)
// 使用解构将map中每一个小数组中的key 与 value 解构出来
for (const [key,value] of map) {
console.log(key,value)
}
// 第一项的值为value 第二项的值为key 第三项的值为 map本身
map.forEach((value,key,self) =>{
console.log(value,key,self)
})