我遇到了从JS Map构造函数中检索密钥的困难。
假设您有以下代码:
var myMap = new Map();
myMap.set('AK', 'Alaska');
myMap.set('CO', 'Colorado');
console.log(myMap.get('CO'))
此console.logs 'Colorado'
。我试图找出如何做相反的事情并使用值'CO'
)返回密钥('Colorado'
)。
在一个完美的世界中,我可以myMap.get('Colorado')
返回'CO'
,但这不起作用。
答案 0 :(得分:1)
当您将唯一键映射到某个值时,最好使用地图。
假设您的用例中的键值对不同,我们可以编写一个帮助程序来使用值查找键。
function getKey(map, value) {
var found = Array.from(map.keys())
.find((key) => map.get(key) === value);
return found[0]; // returning undefined is just fine.
}
答案 1 :(得分:0)
您是否需要使用缩写索引地图?如果没有,您可以用其他方式在其中设置数据:
myMap.set('Alaska', 'AK');
否则,您需要遍历地图的条目:
let entry;
for (entry of myMap.entries()) {
if (entry === 'CO') {
break;
}
}