javascript相当于java的Map.getKey()

hit*_*ani 4 javascript data-structures

我在JavaScript中有一个地图或说一个关联数组的结构:

var myMap = {"one": 1, "two": 2, "three": 3};
Run Code Online (Sandbox Code Playgroud)

要获取与给定值对应的键,我必须遍历地图:

function map_test(value) {
  var myMap = {"one": 1, "two": 2, "three": 3};   
  for (key in myMap) {
    if (myMap[key] == value) {
       alert(key);
       break;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

是否有一些像Java的功能Map.getKey() 或更好的获取密钥的方法?

Tej*_*ani 8

var myMap = {"one": 1, "two": 2, "three": 3};
Run Code Online (Sandbox Code Playgroud)

将其声明为全局变量

function getKey(value){
    var flag=false;
    var keyVal;
    for (key in myMap){
         if (myMap[key] == value){
             flag=true;
             keyVal=key;
             break;
         }
    }
    if(flag){
         return keyVal;
    }
    else{
         return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为您不需要任何函数来获取特定键的值.

你只需要写

var value = myMap[key];
Run Code Online (Sandbox Code Playgroud)