Angular Typescript数组过滤器集合的值数组,例如SQL“ in”

时间:2019-04-10 13:28:15

标签: angular typescript

我正在使用Angular和Typescript来过滤嵌套集合的数组,并且需要基于几个月的数组来过滤嵌套集合。

复杂的数组看起来像这样

{
    Columns: [{
        name: string,
        myData: [{
            monthName: string,
            note: string
        }, ...]
    }, ...]
}

在“列”集合中,一年中的每个月都有12个嵌套对象。

我有{'January', 'Febuary' 'March'}之类的任何过滤器值数组,因此有很多组合。

我正在研究如何基于filtervalues = {'January', 'Febuary' 'March'}

进行过滤

类似这样的东西

var filterColumns = Columns[0].myData.filter(f => f.monthName in filtervalues);

因此,如果从1月到12月的Columns以具有12个myData的Columns开头,我可以对Jan,Feb,Mar进行过滤,并且filterColumns会得到一个3个myData嵌套对象的Columns,它们的monthName为Jan,Feb和Mar。

在打字稿中的嵌套集合上有一种简便的方法吗?

谢谢

1 个答案:

答案 0 :(得分:2)

首先,您的filterValues应该是Array

const filterValues = ['January', 'February', 'March'];

然后您可以使用.includes() function

let filterColumns = Columns[0].myData.filter(f => filterValues.includes(f.monthName));