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结果符合预期
我找到了这个解决方案:
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结果符合预期