【发布时间】:2021-08-28 14:36:55
【问题描述】:
我有这个数据数组,当我过滤子数组时,orderedItems 对象键只被过滤而不是整个数据,这是我的代码。
const data = [
{
id: 6,
orderedItems: [ { name: "Product A", vendor: 2 }, { name: "Product B", vendor: 2 }, { name: "Product B", vendor: 2 } ]
},
{
id: 5,
orderedItems: [ { name: "Product Aaa", vendor: 1 }, { name: "Product Bbb", vendor: 1 }, { name: "Product Ccc", vendor: 2 } ]
}
];
const userId = 1;
const filteredData = data.map(({ id, orderedItems }) => {
return {
id: id,
orderedItems: orderedItems.filter(({ vendor }) => vendor == userId),
};
});
console.log(JSON.stringify(filteredData, null, 2));
结果:
[
{
"id": 6,
"orderedItems": []
},
{
"id": 5,
"orderedItems": [ { "name": "Product Aaa", "vendor": 1 }, { "name": "Product Bbb", "vendor": 1 } ]
}
]
预期结果:
[
{
"id": 5,
"orderedItems": [ { "name": "Product Aaa", "vendor": 1 }, { "name": "Product Bbb", "vendor": 1 } ]
}
]
过滤器有效,但仅适用于orderedItems 对象键,我也希望数组之外的id 也被过滤。有没有办法做到这一点?,如果您需要任何澄清或解释,请在下面评论。谢谢
【问题讨论】:
-
请提供一个带有
userId和预期输出的清晰示例 -
好的,我马上修改
-
我已经编辑了问题并指定了我想要的内容
-
所以你想过滤掉没有
orderItems的结果对象? -
是的,类似的
标签: javascript arrays filter