【发布时间】:2022-01-23 03:39:43
【问题描述】:
我有一个包含对象嵌套数组的数组,我想过滤嵌套数组的对象满足多个条件的数据。
这是示例数据。
const providerList = [
{
id: "bac4ef8d",
provider_name: 'Paa Ra'
provider_gender: "Male",
provider_item: [
{
itemID: "5911319b"
is_approved: true,
is_active: true,
},
{
itemID: "937a56d7"
is_approved: true,
is_active: true,
},
],
},
{
id: "9df373d5",
provider_name: "Che Ta",
provider_gender: "Female",
provider_item: [
{
itemID: "5911319b"
is_approved: true,
is_active: true,
}
],
}
]
这些是过滤器,注意itemID 可以有任意数量的元素。
const itemFilter = {
itemID: ["5911319b", "937a56d7"],
is_approved: [true],
is_active: [true],
};
这是我的代码,但是输出没有按预期返回。
const filterProviders = providerList.filter(provider =>
provider.provider_item.every(item =>
Object.entries(itemFilter).every(([k, v]) => v.includes(item[k]))),
);
我需要过滤 providerList 并返回提供者
provier_item 匹配 itemFilter 中的所有值。上述itemFilter 的预期输出为:
filterProviders = [
{
id: "bac4ef8d",
provider_name: 'Paa Ra'
provider_gender: "Male",
provider_item: [
{
itemID: "5911319b"
is_approved: true,
is_active: true,
},
{
itemID: "937a56d7"
is_approved: true,
is_active: true,
},
],
}
]
【问题讨论】:
-
你能显示预期的输出吗?
-
您想要嵌套的
provider_item中的所有itemID还是仅仅一部分? -
@jsejcksn 我已更新以显示输出。
-
@NinaScholz 返回需要全部,而不是一些
标签: javascript arrays reactjs filter javascript-objects