为了账号安全,请及时绑定邮箱和手机立即绑定

如何过滤嵌套数组(组成 JS 过滤器)

如何过滤嵌套数组(组成 JS 过滤器)

泛舟湖上清波郎朗 2021-07-12 17:03:31
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);


查看完整回答
反对 回复 2021-07-15
  • 2 回答
  • 0 关注
  • 389 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信