使用列表按属性筛选对象数组



我有一个对象数组,我正试图通过值列表进行筛选:

var idlist = [
{
id: '1',
},
{
id: '3',
},
{
id: '2',
},
{
id: '6',
},
]
var values = ['1', '6', '3']

我发现的一种方法是将我的列表转换为一个对象,然后使用进行过滤

value.filter(k => 
obj.find(v => v.id === k.id)
)

然而,我觉得这是我不需要的额外步骤。有没有更简单的解决方案?我想要的输出是新id列表

[
{
id: '1',
},
{
id: '3',
},
{
id: '6',
},
]

谢谢!

只需使用

idlist.filter(f => values.includes(f.id))

var idlist = [{
id: '1',
},
{
id: '3',
},
{
id: '2',
},
{
id: '6',
},
]
var values = ['1', '6', '3']
console.log(idlist.filter(f => values.includes(f.id)))

最新更新