繁体   English   中英

在Javascript中按值返回对象属性的名称?

[英]Return name of object property by value in Javascript?

我有一个映射ID的JavaScript对象:

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

给定一个值...

accountType = 2;

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

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

现场演示

jQuery版本,尽管在这里使用它确实没有任何好处:

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

现场演示

如果您经常执行此操作,则将对象保留用于反向查找会比较有效:

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

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

var name = codeNames[accountType];

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

var codeNames = {};
for (var i in codes){
  codeNames[codes[i]] = i;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM