首页 > 解决方案 > 映射获取对象键返回未定义

问题描述

在 map 中,我们可以将任何类型的数据存储为键,那么为什么我不能使用 get 获取键对象的值呢?

let map = new Map()
map.set('name', 'str')
map.set(1, 'num')
map.set({country: 'Abuddin'}, 'Tyrant')

所以现在使用 map.get(key),获取除对象之外的所有值

map.get('name')
"str"

map.get(1)
"num"

map.get({country: 'Abuddin'})
undefined

不应该 map.get({country: 'Abuddin'}) 得到暴君吗?

标签: javascript

解决方案


您需要相同的对象引用,而不是新对象。

let map = new Map(),
    object = { country: 'Abuddin' };


map.set('name', 'str')
map.set(1, 'num')
map.set(object, 'Tyrant')

console.log(map.get('name'));
console.log(map.get(1));
console.log(map.get(object)); 


推荐阅读