0

IDをマップするjavascriptオブジェクトがあります。

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

与えられた値...

accountType = 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 に答える