ES6 16.Map数据集合
Map数据集合
Map数据集合
1.ES6提供了Map数据集合,是一种以键值对存在的有序列表
// 创建Map集合 let map=new Map(); map.set('name','Mr.Lee'); //支持添加,支持.set(...).set(...) map.set('age',100); console.log(map); // Map(2) { 'name' => 'Mr.Lee', 'age' => 100 } console.log(map.get('name')); //get获取
2.也可以通过构造函数传递参数的方式初始化集合,比如接受一个数组
// 通过构造函数初始化集合 let map=new Map([ ['name','Mr.Lee'], ['age',100] ]); console.log(map); //Map(2) { 'name' => 'Mr.Lee', 'age' => 100 }
3.使用has()检测、delete()删除、clear()清空等对Map集合的操作
console.log(map.has('name')); //true console.log(map.size); //2 map.delete('name'); //删除 console.log(map); //Map(1) { 'age' => 100 } map.clear(); //清空 console.log(map); //Map(0) {}
4.我们可以用forEach来遍历Map集合
let map=new Map([ ['name','Mr.Lee'], ['age',100] ]); map.forEach((value,key,m)=>{ console.log(key+ '-' +value); //name-Mr.Lee console.log(m); //Map(2) { 'name' => 'Mr.Lee', 'age' => 100 } })
5.Map集合还提供针对对象的Weak map集合,添加非对象类型会报错
6.Weak Map不支持遍历,内部隐藏(无法查看内容),不支持foreach和size
7.对于应用场景来说,存放对象的弱引用,不用担心对象被回收后引发的问题
// 弱引用 let wm=new WeakMap(), obj={}; wm.set(obj); console.log(wm.has(obj)); //true // 移出引用 obj=null; console.log(wm.has(obj)); //回收