如何在JavaScript Map中使用get()获取对象键对应的值?
获取Map中对象键对应的值的方法
在JavaScript的Map里,引用类型的键是靠引用相等性来匹配的——也就是说,只有当你传入的键和当初set时用的是同一个对象引用,才能用get()拿到对应的值。
直接用原对象变量获取
你已经把目标对象存在obj变量里了,直接把它传给get()方法就能拿到对应的值:
const targetValue = myMap.get(obj); console.log(targetValue); // 输出:true
避坑提醒:别用新对象去匹配
如果你新建一个结构完全一样的{'site': 'stackoverflow'}对象去调用get(),是拿不到值的。因为这是一个全新的对象引用,和Map里存储的键引用并不相等:
// 这种写法会返回undefined const wrongValue = myMap.get({'site': 'stackoverflow'}); console.log(wrongValue); // 输出:undefined
小贴士
如果后续还需要获取这个键对应的值,一定要保留好obj这个引用,别随便重新创建结构相同的对象,否则会因为引用不匹配拿不到目标值。
内容的提问来源于stack exchange,提问作者Sudo Sur
相关产品推荐
相关产品推荐

