Map的基本使用

创建并初始化Map

const m=new Map([
["key1","val1"],
["key2","val2"]
])

操作Map

  • 使用set方法向Map中添加键值对
const m=new Map()
m.set("firstname","firstvalue").set("secondname","secondname")
  • 使用get和has方法对Map进行查询
console.log(m.has("firstname")) //true
console.log(m.get("firstname")) //firstvalue
  • 使用delete方法删除Map中的键值对
m.delete("firstname") //只删除一个键值对
  • 使用size属性获取键值对数量
console.log(m.size) //1
  • 使用clear方法清除所有键值对
m.clear()

Map的顺序与迭代

Map的顺序

  • 描述
    Map与Object主要的差异是:Map实例会维护键值对的插入顺序,因此可以根据插入顺序执行迭代操作。

Map的迭代

  • 使用entries方法迭代Map
const m=new Map([
["key1","val1"],
["key2","val2"],
["key3","val3"]
])
for(let pair of m.entries()){
console.log(pair)  
}
//["key1","val1"]
//["key2","val2"]
//["key3","val3"]

注:可以使用拓展操作符把映射转化为数组

const m=new Map([
["key1","val1"],
["key2","val2"],
["key3","val3"]
])
console.log([...m])  //[[key1,val1],[key2,val2],[key3,val3]]
  • 使用回调函数的方式迭代Map
    通过forEach(callback,thisArg)迭代Map,其中callback函数中的参数为键值对,thisArg为重写的this
const m=new Map([
["key1","val1"],
["key2","val2"],
["key3","val3"]
])
m.forEach((val,key)=>console.log(`${key}:${val}`))
//key1:val1
//key2:val2
//key3:val3
  • 使用keys迭代key值
for(let key of m.keys()){
console.log(key)
}
//key1
//key2
//key3
  • 使用values迭代value值
for(let key of m.values()){
console.log(key)
}
//value1
//value2
//value3
最后修改:2021 年 12 月 14 日
如果觉得我的文章对你有用,请随意赞赏