0

我有一个映射 id 的 javascript 对象:

codes = { 
    "admin" : 3,
    "manager" : 2,
    "basic" : 1
}

给定一个值...

帐户类型 = 2;

...找到相应密钥(“经理”)的最优雅方法是什么?

4

2 回答 2

3
for (var i in codes){
    if (codes[i] == accountType)
        alert(i);
}

现场演示

jQuery 版本,虽然在这里使用它并没有什么好处:

$.each(codes, function(key, value){
        if (value == accountType)
            alert(key);
});

现场演示

于 2013-03-16T20:01:59.390 回答
1

如果你经常这样做,保留一个用于反向查找的对象会很有效:

codeNames = { 
  "3": "admin",
  "2": "manager",
  "1": "basic"
}

现在您可以按名称访问属性:

var name = codeNames[accountType];

您可以从对象创建查找codes对象:

var codeNames = {};
for (var i in codes){
  codeNames[codes[i]] = i;
}
于 2013-03-16T20:17:52.410 回答