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)}