我不确定是否正确理解了 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/