输入: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 过滤掉它们但没有成功
3 回答
![?](http://img1.sycdn.imooc.com/54584cfb0001308402200220-100-100.jpg)
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
您可以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);
添加回答
举报
0/150
提交
取消