簡體   English   中英

lodash:使用值數組過濾集合

[英]lodash: Filter collection using array of values

我發現這個解決方案:

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所有值?

如果按所有值表示對象,那么

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

如果你的意思是描述,那么

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

對於這種東西你不再需要lodash了。

您可以使用find方法獲取一個值

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

對於somename1的所有對象

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

Console.log結果如預期

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM