A am 试图返回一个根据对象的子属性过滤的新数组。我试图将两个过滤器嵌套在一起以实现此结果。let header = "xyz";let data = [{ "header": header, items: [{ id: 1, status: "Y" }, { id: 2, status: "N" }, { id: 3, status: "N" }]},{ "header": header, items: [{ id: 1, status: "N" }, { id: 2, status: "Y" }]}];let result = data.filter(item => { return item.items.filter(item => { return item.status === "Y"; })});预期输出[{ "header": header, items: [{ id: 1, status: "Y" }]},{ "header": header, items: [{ id: 2, status: "Y" }]}];如何过滤原始数组 where status === 'Y'?
2 回答
白衣染霜花
TA贡献1796条经验 获得超10个赞
您可以先映射以获得具有过滤子项的等效数组,然后过滤主数组以删除没有子项的元素。
let result = data.map(item => {
return {
header: item.header,
items: item.items.filter(subItem => subItem.status === 'Y')
};
}).filter(item => item.items.length);
添加回答
举报
0/150
提交
取消