Javascript 如何按另一个对象数组中的数据筛选对象数组?
请帮助理解如何实现这一点:Javascript 如何按另一个对象数组中的数据筛选对象数组?,javascript,typescript,Javascript,Typescript,请帮助理解如何实现这一点: var filterAarray = [ { id: 1, key: "fruits" }, { id: 2, key: "fruits" }, { id: 4, key: "vegetables" }, ]; var foodArray = [ { fruits: [ { id: 1, label: "Apple" }, { id: 2, label: "Cherry" } ], vegetables
var filterAarray = [
{ id: 1, key: "fruits" },
{ id: 2, key: "fruits" },
{ id: 4, key: "vegetables" },
];
var foodArray = [
{
fruits: [
{ id: 1, label: "Apple" },
{ id: 2, label: "Cherry" }
],
vegetables: [
{ id: 4, label: "Cucumber" }
]
},
{
fruits: [
{ id: 1, label: "Apple" },
{ id: 2, label: "Cherry" },
{ id: 3, label: "Strawberry" }
],
vegetables: [
{ id: 4, label: "Cucumber" },
{ id: 5, label: "Tomato" }
]
}, {
fruits: [
{ id: 2, label: "Cherry" },
],
vegetables: [
{ id: 5, label: "Tomato" }
]
}
];
我需要获得过滤对象数组foodArray,它包含来自FilterArray的所有数据。
结果必须是:
[
{
fruits: [
{ id: 1, label: "Apple" },
{ id: 2, label: "Cherry" }
],
vegetables: [
{ id: 4, label: "Cucumber" }
]
},
{
fruits: [
{ id: 1, label: "Apple" },
{ id: 2, label: "Cherry" },
{ id: 3, label: "Strawberry" }
],
vegetables: [
{ id: 4, label: "Cucumber" },
{ id: 5, label: "Tomato" }
]
}
];
i、 e.如果“foodArray”的对象存在于数组“FilterArray”中,则必须显示它们这应该可以:
foodArray.filter(obj=>
filterArray.every(e=>!!obj[e.key]。查找(unit=>unit.id==e.id)),
);
总体思路:检查foodArray
中的每个对象。然后通过键检查是否在数组中找到过滤器阵列中的每个元素
看看: