Map
Map以键值对的形式储存数据,Key值可以是对象。
let a = new Map()
let obj = {
name: 'Faker'
}
// set()
a.set(obj, 'SKT T1')
console.log(a) // Map(1) {{…} => "SKT T1"}
// get()
console.log(a.get(obj)) // SKT T1
// has()
console.log(a.has(obj)) // true
// delete()
a.delete(obj)
console.log(a) // Map(0) {}
console.log(a.has(obj)) // false
也可以这样为Map赋值。
let a = new Map(
[
['Faker', 'MID', 24],
['Bang', 'BOT']
]
)
console.log(a.get('Faker')) // MID
遍历
let a = new Map(
[
['Faker', 'MID', 24],
['Bang', 'BOT']
]
)
let b = new Set([1, 2, 3, 4, 5])
a.forEach((value, key) => {
console.log(key, value)
// Faker MID
// Bang BOT
});
for (let [key, value] of a) {
console.log(key, value)
// Faker MID
// Bang BOT
}
for (let value of a.values()) {
console.log(value)
// MID
// BOT
}
for (let key of a.keys()) {
console.log(key)
// Faker
// Bang
}
for (let [key, value] of a.entries()) {
console.log(key, value)
// Faker MID
// Bang BOT
}
Map有什么用
Map类似Object 但比Object更加灵活
频繁对键值对进行操作时,Map比Object速度更快
WeakMap()
WeakMap()键值对必须为引用类型。
WeakMap不可用clear()清除。
WeakMap无法遍历。
是弱引用类型。