带有值的JS Map构造函数的返回键

时间:2017-12-06 16:19:01

标签: javascript

我遇到了从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',但这不起作用。

2 个答案:

答案 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;
    }
}