簡體   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