2017-02-24 10 views
0

私はjsのためlodashまわりで私の頭を取得し、IDキーを使用して、このオブジェクトから名「1」でオブジェクトのプロパティを選択しようとしています:lodashでjsonのオブジェクトプロパティを取得する方法は?

{ 
    "one": { 
     "id":"peter", 
     "somevalue":1 
     }, 
    "two": { 
     "id":"john", 
     "somevalue":1 
    } 

} 

その結果、私は希望:

{ 
    "id":"peter", 
    "somevalue":1 
} 

申し訳ありません質問を更新しました: このケースでは 'id' = 'peter'キーを使用して名前に基づいてこの結果を返すことで、これをどのように達成できますか?

+2

? – ryeballar

+0

JSONからプロパティを取得せずにJSONを解析し、その結果のオブジェクトからプロパティを取得します。 – nnnnnn

+0

申し訳ありません質問を上記のように更新しました –

答えて

1

Lodash(#1)と

const value = _.find(obj, prop => prop.id === 'peter'); 

Lodash(#2):

const value = _.find(obj, {id: 'peter'}); 

Lodash(#3)で:(ヒューズにクレジット)

const value = _.find(obj, 'id', 'peter'); 

プレーンJS:

const key = Object.keys(obj).find(key => obj[key].id === 'peter'); 
const value obj[key]; 

将来JS:ここでは、フィルター上

const value = Object.values(obj).find(prop => prop.id === 'peter'); 
+0

私は3番目のロダッシュオプションについてもあまりよく書かれていません。複雑な述語オブジェクトや関数が必要ない場合は、正確な値を問い合わせることができます: '_.find(obj、 'id'、 'peter')' – hughes

1

その他のドキュメント:直接プレーンジャバスクリプト `object.one`を使用して、あなたがそれにアクセスしないのはなぜhttps://lodash.com/docs#filter

var obj = { 
 
    "one": { 
 
     "id":"peter", 
 
     "somevalue":1 
 
     }, 
 
    "two": { 
 
     "id":"john", 
 
     "somevalue":1 
 
    } 
 

 
}; 
 

 
console.log(_.filter(obj, {id:"peter"}));
<script src="https://cdn.jsdelivr.net/lodash/4.17.4/lodash.min.js"></script>

関連する問題