在Angular 2应用程序中过滤多维数组中的应用程序

在Angular 2应用程序中过滤多维数组中的应用程序

问题描述:

我正试图找到一种方法来处理在Angular 2应用程序中使用数组来过滤数组。数据是这样的:在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”的组合吗?还是有更简洁的方法来做到这一点?

您可以使用过滤器与一些

let filteredServices = services.filter((element) => element.flags.some((subElement) => subElement.completed === false)); 
+0

@Muirik是完全相同 – Sajeetharan

+0

只是好奇,为什么我得到打印到控制台在这种情况下,整个对象? (1)0:Objectflags:Array(2)ribbons:Array(2)__ proto__:Objectlength:1__proto__:Array(0) – Muirik

+0

在尝试建议后,我在原始问题中添加了一些细节。请看看我在那里写的。 – Muirik