• JavaScript中Map的使用


    ES6另外一个新增的数据结构是Map,用于存储映射关系

    我们在ES6之前就可以用对象来存储映射关系了,那还需要Map吗?

    • 事实上对象存储映射关系只能用字符串(以及ES6新增的Symbol)作为属性名(key);
    • 有时候我们可能希望通过其他类型比如对象作为key,这个时候会自动将对象转成字符串来作为key。
    1. const obj1 = {
    2. name:"key"
    3. }
    4. const map = new Map()
    5. map.set(obj1,"这个是value")
    6. console.log(map.get(obj1))

    创建了一个Map对象,使用set将对象obj1作为key,用get获取obj1对应的value。

    1. const map1 = new Map([
    2. [obj1, "abc"],
    3. [obj2, "abc"],
    4. [obj3, "abc"],
    5. ])
    6. console.log(map1.get(obj1));
    7. console.log(map1.get(obj2));
    8. console.log(map1.get(obj3));

    Map的常见方法

    Map常见的属性

    • size:返回Map中元素的个数;

    Map常见的方法:

    • set(key, value):在Map中添加key、value,并且返回整个Map对象;
    • get(key):根据key获取Map中的value;
    • has(key):判断是否包括某一个key,返回Boolean类型;
    • delete(key):根据key删除一个键值对,返回Boolean类型;
    • clear():清空所有的元素; forEach(callback, [, thisArg]):通过forEach遍历Map;

    Map也可以通过for of进行遍历。

    和Map类型的另外一个数据结构称之为WeakMap,也是以键值对的形式存在的。

    那么和Map有什么区别呢?

    • 区别一:WeakMap的key只能使用对象,不接受其他的类型作为key;
    • 区别二:WeakMap的key对对象想的引用是弱引用,如果没有其他引用引用这个对象,那么GC可以回收该对象;

    WeakMap常见的方法有四个:

    • set(key, value):在Map中添加key、value,并且返回整个Map对象;
    • get(key):根据key获取Map中的value;
    • has(key):判断是否包括某一个key,返回Boolean类型;
    • delete(key):根据key删除一个键值对,返回Boolean类型;
  • 相关阅读:
    2024高频前端面试题 HTML 和 CSS 篇
    万兆以太网MAC设计(8)ICMP协议详解以及ICMP层模块设计
    用一台电脑连接另一台电脑的虚拟机
    基于分布式光纤侦听技术的岛礁近岸防卫监测
    修改a-rate评分颜色;a-rate评分十分制
    CefSharp进阶
    69. x 的平方根
    kafka 使用thrift序列化对象
    Bunifu UI WinForms 6.0.1 Crack
    【c++】杂记
  • 原文地址:https://blog.csdn.net/m0_51636525/article/details/125467510