2017-03-20 6 views
2

の配列を使用してフィルタのコレクション私は、このソリューションが見つかりました:lodash:値

var collections = [ 
    {name: 'somename1', desctiption: 'xyz'}, 
    {name: 'somename', desctiption: 'ds'}, 
    {name: 'somename', desctiption: 'rtrt'}, 
    {name: 'somename2', desctiption: 'nhf'}, 
    {name: 'somename1', desctiption: 'qwe'} 
]; 

names = ['somename1', 'somename2'] 

_(collections) 
    .keyBy('name') 
    .at(names) 
    .value(); 

をしかし、結果は私がsomename1ですべての値を取得する方法、somename1と一つの値だけが含まれていますか?その後、

答えて

7

あなたがオブジェクトを意味し、すべての値であれば、

const values = collections.filter(e => ['somename1', 'somename2'].includes(e.name)) 

あなたが説明を意味する場合は、あなたが本当にもうlodash必要としないもののこの種のために、その後

const descriptions = values.map(e => e.description) 

。あなたは結果が期待されているようsomename1

_.pullAllWith(collections,{ name : 'somename1'}) 

CONSOLE.LOGで一つの値に、すべてのオブジェクトについては

_.find(collections,{name : 'somename1'}) 

を取得するためにfindメソッドを使用することができます

0

私はの配列によって見つける必要がある
+0

値:names = ['somename1'、 'somename2'] – Meldum

+0

入力と出力の例を表示できます – Aravind