2016-04-11 9 views

答えて

3

非愚かな方法は、次のようになります。

var yourObject = {1: "name", 2: "cost", 3: "country", 4: "date"}; 
 

 
var result = Object.keys(yourObject).find(key => yourObject[key] === 'cost'); 
 

 
console.log(result) // 2

あなたはES6(矢印機能、find)を使用することができると仮定し

+0

これは私が欲しかったものです - ありがとう! –

4

それぞれの値をチェックしてプロパティを繰り返し処理します。

for (var property in object) { 
    if (object[property] === 'cost') { 
    /// congratulations, you've found it 
    } 
} 

もちろん、これを行うにはさまざまな方法があります。 Object.keys - しかし、それらは基本的に同じことです。それをやっての

+0

を.cost 'Object.prototype'拡張を行っていないいただきありがとうございます。シンプルで効果的なソリューション。 – Eihwaz

+0

ああこれは本当に素晴らしいです!ありがとうございました!私は両方を実行し、それぞれの利点を見ます。 –

0

は、私が投げるはずと考えました私が読んだものからIE9の前にObject.Keys()がサポートされていないのでここでの答えです。

$.each(yourObject, function(key,value){ 
    if(value === 'cost'){ 
     console.log(key) // key is 2 
    } 
}); 

ここにはJSFiddleがあります。 loadash

_.invert(入力)を使用して

関連する問題