2017-07-10 3 views
-1

の値からキーを取得、私はJavaScriptオブジェクト

var obj = { 
    key_1: false, 
    key_2: true, 
    key_3: false 
} 

は、私は値のうち1つだけが真実であることを知って、以下の専用としてブール値を持つJSオブジェクトを持っています。私は何も見つけることができないので、同じのためのライブラリメソッドがあります。

私は_.indexOfを使用してみましたが、あなたはその値のキーを返すためにObject.keys()find()を使用することができる唯一のtrue値があることがわかっている場合、それは

+1

します'for key in obj'、 – Endless

答えて

2

を動作するようには思えませんでした。それ自身のスコープの外に行くことはありません

var obj = { 
 
    key_1: false, 
 
    key_2: true, 
 
    key_3: false 
 
} 
 

 
var key = Object.keys(obj).find(e => obj[e] == true); 
 
console.log(key)

+0

それはうまくいきました ありがとう! –

+1

'obj [e]'が真であるかどうかを確認する必要はありません。返すことができます – Endless

0

その他のソリューション。選択するオプションのしなやか、 `Object.keys`、` Object.values`、 `Object.entries`、それはより多くの
"純粋"(以下ブラウザのサポート)

var obj = { 
 
    key_1: false, 
 
    key_2: true, 
 
    key_3: false 
 
} 
 

 
var key = Object.entries(obj).find(a => a[1])[0] 
 
console.log(key)