在Angular 2 App中过滤多维数组

时间:2017-08-08 05:53:20

标签: javascript arrays angular typescript

我正试图找到一种方法来处理在我的Angular 2应用程序中使用数组过滤数组。数据如下所示:

  let services = [
          {
              flags: [
                  {
                      action: "Flag One",
                      completed: true,

                  },
                  {
                      action: "Flag Two",
                      completed: false,

                  },
                ],
            ribbons: [
                 {
                      action: 'Ribbon One',
                      active: false,
                  },
                 {
                      action: 'Ribbon Two',
                      active: true,
                  },
            ]
          }
        ]

现在,如果我知道要定位的第二个数组中的哪个项目,我可以这样做:

let filteredServices = services.filter(service => service.flags[0].completed === false);

console.dir(filteredServices);

但是,通常我不知道内部数组中的哪个项目要定位,那么如何编写一个过滤函数来迭代两个数组并过滤我正在寻找的特定项目?我会使用“过滤器”和“forEach”的组合吗?或者有更简洁的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以将过滤器与某些

一起使用
let filteredServices = services.filter((element) => element.flags.some((subElement) => subElement.completed === false));