返回与另一个对象数组的属性匹配的对象数组的子集

输入:


const parentArray = [

{id:1, name:'foo'},

{id:2, name:'bar'},

{id:4, name:'foobar'},

{id:6, name:'barfoo'}

]


const childArray = [

  {parent_id:1, prop:'prop1'}, 

  {parent_id:2, prop:'prop2'}, 

  {parent_id:3, prop:'prop3'},

  {parent_id:4, prop:'prop4'},

  {parent_id:5, prop:'prop5'}

];

输出:


const resultingArray = [

{id:1, name:'foo'},

{id:2, name:'bar'},

{id:4, name:'foobar'}

]

我想比较两个数组的属性id并parent_id返回parentArray匹配属性的子集


我尝试使用 lodash 过滤掉它们但没有成功


慕标5832272
浏览 134回答 3
3回答

蝴蝶刀刀

您可以Set为想要的父母取 a并过滤parent数组。var parents = [{ id: 1, name: 'foo' }, { id: 2, name: 'bar' }],    children = [{ parent_id: 1, prop: 'prop1' }, { parent_id: 3, prop: 'prop3' }],    wanted = new Set(children.map(({ parent_id }) => parent_id)),    result = parents.filter(({ id }) => wanted.has(id));console.log(result);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript