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)); //回收
posted @ 2021-11-26 18:05  翟莹萍  阅读(61)  评论(0编辑  收藏  举报