Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
Map 中的键值是有序的(FIFO 原则), Map 的键值对个数可以从 size 属性获取
- 添加成员用set
a = function fn() {}
var re = new Map()
//set添加成员
re.set("age", 24)//key可以是字符串
re.set(12, 34)//key可以是数字
re.set([12, 33], 100)//可以是数组
re.set(a, 55)//可以是函数
console.log(re)
- 获取Map中的值用get
a = function fn() {}
var re = new Map()
re.set("age", 24)
re.set(12, 34)
re.set([12, 33], 100)//引用数据作为map的key时 取值也必须是同一个引用,这里就是不同的引用,如果想要引用相同就用变量保存
re.set(a, 55)
console.log(re.get("age"))
console.log(re.get(12))
console.log(re.get([12,33]))
console.log(re.get(a))
- 删除成员用delete
var m1=new Map([["age",20],["name","karen"]])
console.log(m1)
m1.delete('age')//删除key为'age'的成员
console.log(m1)
- clear清空Map的所以成员
var m1=new Map([["age",20],["name","karen"]])
console.log(m1)
m1.clear()//清空map的所有成员
console.log(m1)
遍历Map
a = function fn() {}
var re = new Map()
re.set("age", 24)
re.set(12, 34)
re.set([12, 33], 100)
re.set(a, 55)
//第一种遍历forEach
re.forEach(function (el) {
console.log(el)
})
//第二种遍历for of
for (var [key, value] of re) {
console.log(key + " = " + value);
}
Map 与 Array的转换
var arr=[[11,10],[21,920],["hello","world"]]
var re=new Map(arr)
console.log(re)
var arr2=Array.from(re)//将Map转为数组
console.log(arr2)