Map
Map是一组键值对的结构,用于解决以往不能用对象作为键的问题。
声明定义
var map = new Map(
[["id1",1],["id2",2]]
);
console.log(map);
输出:{'id1' => 1,'id2' => 2}
使用set 方法添加元素,支持链式操作
var map = new Map();
map.set("id1",1).set("id2",2);
console.log(map);
输出:输出:{'id1' => 1,'id2' => 2}
使用get方法获取对应键的内容
var map = new Map();
map.set("id1",1).set("id2",2);
console.log(map.get("id1"));
输出:1
获取map的数量
var map = new Map();
map.set("id1",1).set("id2",2);
console.log(map.size);
输出:2
检测元素是否存在
var map = new Map();
map.set("id1",1).set("id2",2);
console.log(map.has("id1"));
输出:true
删除元素
var map = new Map();
map.set("id1",1).set("id2",2);
map.delete("id1");
console.log(map);
输出:{"id2" => 2}
清空元素
var map = new Map();
map.set("id1",1).set("id2",2);
map.clear();
console.log(map);
输出:{}
遍历Map
var map = new Map();
map.set("id1",1).set("id2",2);
map.forEach(
(value,key) =>{
console.log(value,key);
}
);
输出:1 0
2 1
3 2
数组转化
var map = new Map();
map.set("id1",1).set("id2",2);
console.log([...map]);
输出:[["id1",1],["id2",2]]
weakMap
键名必须是对象
WeaMap对键名是弱引用的,键值是正常引用
垃圾回收不考虑WeaMap的键名,不会改变引用计数器,键在其他地方不被引用时即删除
因为WeakMap 是弱引用,由于其他地方操作成员可能会不存在,所以不可以进行forEach( )遍历等操作
也是因为弱引用,WeaMap 结构没有keys( ),values( ),entries( )等方法和 size 属性
当键的外部引用删除时,希望自动删除数据时使用 WeakMap