我在JavaScript中有一张地图或说一种关联数组的结构:
var myMap = {"one": 1, "two": 2, "three": 3};
要获取与给定值对应的键,我必须遍历地图:
function map_test(value) {
var myMap = {"one": 1, "two": 2, "three": 3};
for (key in myMap) {
if (myMap[key] == value) {
alert(key);
break;
}
}
}
是否有类似Java Map.getKey()
的功能
或者更好的获取钥匙的方式?
答案 0 :(得分:8)
var myMap = {"one": 1, "two": 2, "three": 3};
将其声明为全局变量
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;
}
}
我认为你不需要任何函数来获取特定键的值。
你必须写
var value = myMap[key];
答案 1 :(得分:3)
对于您的具体情况,有一个更快的解决方案:
function map_test(key,value)
{
var myMap = {"one": 1, "two": 2, "three": 3};
if(myMap.hasOwnProperty(key)) alert(key);
}
map_test('two',2);
一般来说,没有直接的方法getKeys()
答案 2 :(得分:0)
你不需要这样的功能,只需写myMap[key]
,就是这样。
答案 3 :(得分:0)
大约几个月前,我写了一个与Java Map非常类似的本机键值存储的包装器。也许它对你有用,但请记住getKey使用线性搜索,因为这不是HashMap。
您可以在我的博客上查看该课程的说明和代码(因为它只是糖方法的长代码):http://stamat.wordpress.com/javascript-map-class/