javascript中的Map数据结构

本文介绍了JavaScript中的两种数据结构——Map和WeakMap。Map允许使用任何类型的值作为键值对,解决了对象作为键的问题,支持增删查改及遍历操作。而WeakMap的键必须是对象且为弱引用,当键不再被引用时,会被垃圾回收机制自动删除,因此不支持某些遍历和属性。WeakMap主要用于保存弱引用的数据,以避免影响垃圾回收。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值