目录
What——什么是map
- Map用来存储键值对结构的数据(key-value)
Have——属性和方法有什么
map.size() //获取map中键值对的数量
map.set(key,value)//向map中添加键值对
map.get(key) //根据key获取值
map.delete(key) //删除指定数据
map.has(key) //检查map中是否包含指定键
mao.clear() //删除全部的键值对
map.keys() //获取map的所有的key
map.values() // 获取map的所有的value
const map = new Map()
map.set("name", "孙悟空")
map.set(obj2, "呵呵")
map.set(NaN, "哈哈哈")
map.delete(NaN)
// map.clear()
console.log(map)
console.log(map.get("name")) //孙悟空
console.log(map.has("name")) //true
Distinct——和Object的区别
- Object中存储的数据就可以认为是一种键值对结构
- Map和Object的主要区别:
- - Object中的属性名只能是字符串或符号,如果传递了一个其他类型的属性名, JS解释器会自动将其转换为字符串
- - Map中任何类型的值都可以称为数据的key
const obj2 = {}
const obj = {
"name":"孙悟空",//字符串
'age':18, //字符串
[Symbol()]:"哈哈",//符号
[obj2]:"嘻嘻"
}
How——怎样创建
// 创建一个Map
const map = new Map()
Shift——map的转换
1.将map转换为数组
使用Array.from( )
const map = new Map()
map.set("name", "孙悟空")
map.set("age", 18)
map.set({}, "呵呵")
const arr = Array.from(map) // [["name","孙悟空"],["age",18]]
使用扩展运算符
const arr = [...map]
2.由二维数组构建一个map
const map2 = new Map([
["name", "猪八戒"],
["age", 18],
[{}, () => {}],
])
// console.log(map2)
遍历map
1.使用for-of
for (const [key, value] of map) {
const [key, value] = entry
console.log(key, value)
}
2.使用for-each
forEach用来遍历map中的每一个元素
map.forEach((key, value)=>{
console.log(key, value)
})