Javascript对象Map,如果多个键映射到相同的值,如何从值中获取键

标签 javascript javascript-objects

我不确定是否正确理解了 JavaScript 对象映射,并且无法确定某些内容是否存在错误或者情况是否就是这样。

在下面的代码中,我可以理解前 3 条控制台消息。

但是最后一个 console.log - 应该什么也不显示吗?

let key1 = 3;
let key2 = 6;
let key3 = 14;
let myMap= new Map();

myMap.set(key1, 'Buy');
myMap.set(key2, 'Buy');
myMap.set(key3, 'Sell');

console.log(myMap.get(key1));   // Buy
console.log(myMap.get(key2));   //Buy 
console.log(myMap.get(key3));   //Sell
console.log(myMap.get('Buy'));   //.....nothing

MDN 页面说:“任何值(对象和原始值)都可以用作键或值。” https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

因此,根据我的理解,“购买”是一个值,应该映射到 key1 和 key2。

有人可以确认此行为的原因吗?谢谢

最佳答案

不,他们的意思是你可以使用任何对象作为映射中的键,并且可以将任何对象作为值存储在映射中。这并不意味着值也是键。这将是一种奇怪的、意想不到的、不受欢迎的行为。

关于Javascript对象Map,如果多个键映射到相同的值,如何从值中获取键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35989383/

相关文章:

javascript - 如何在悬停 div2 时显示 div1 并在 mouseout 时显示淡出的 div1?

javascript - 如何通过字符串作为括号表示法在javascript中获取嵌套对象?

javascript - 在 Node 中使用 process.argv 时,对象类型是字符串的名称而不是字符串本身

Javascript setattr 或 setOwnProperty

javascript - 如何获取对象数组中对象所有属性值的数组?

javascript - 谷歌地图 js api 版本 3 信息窗口故障

javascript - 在没有构造函数在类的主体中声明状态的情况下使用react

javascript - 每次 Gulpfile 更改后如何重新启动 Gulp?

Javascript 创建具有动态属性的对象

typescript - 是否可以在没有类型断言或中间体的情况下在 TypeScript 中定义具有属性的函数?