JavaScript中Map的使用

43 篇文章 4 订阅

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

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

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

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

const map1 = new Map([
        [obj1, "abc"],
        [obj2, "abc"],
        [obj3, "abc"],
      ])
      console.log(map1.get(obj1));
      console.log(map1.get(obj2));
      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类型;
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

至尊绝伦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值