Map
ES6 提供了 `Map` 数据结构。它类似于 **对象** ,也是**键值对的集合**。但是 “键” 的范围**不限于字符串**,各种类型的值(包括对象)都可以当做键。 `Map` 也实现了 `iterator` 接口,所以可以使用 `...` 和 `for...of...` 进行遍历。 `Map` 的属性和方法:
- size:返回
Map
的元素个数 - set:增加一个新元素,返回当前
Map
- get:返回键名对象的键值
- has:检测
Map
是否包含某个元素,返回 boolean
值 - clear:清空集合,返回
undefined
- delete:删除某个属性
基本使用:
// 声明 Map
let m = new Map()
console.log(m,Object.prototype.toString.call(m)) // Map(0) {} "[object Map]"
// 添加元素
m.set('name','陈朝鸿')
m.set('change',function() {
console.log('我们可以改变你')
})
let key = {
school: 'ATGUIGU'
}
m.set(key, ['北京','上海','深圳'])
console.log(m) // Map(3) {"name" => "陈朝鸿", "change" => ƒ, {…} => Array(3)}
// size
console.log(m.size) // 3
// 删除
m.delete('name')
console.log(m) // Map(2) {"change" => ƒ, {…} => Array(3)}
// 获取
console.log(m.get('change')) //ƒ () { console.log('我们可以改变你') }
console.log(m.get(key)) // (3) ["北京", "上海", "深圳"]
// 清楚
// m.clear()
console.log(m) //Map(0) {}
for(let v of m) {
console.log(v)
}
// (2) ["change", ƒ]
// (2) [{…}, Array(3)]
console.log(m) // Map(2) {"change" => ƒ, {…} => Array(3)}