【问题标题】:Angular Typescript Array filter collection base of array of values like SQL "in"基于值数组的Angular Typescript Array过滤器集合,如SQL“in”
【发布时间】:2019-04-11 00:17:27
【问题描述】:

我正在使用 Angular 和 typescript 过滤嵌套集合数组,需要根据月份数组过滤嵌套集合。

复杂的数组看起来像这样

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

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

我有任何过滤器值数组,例如{'January', 'Febuary' 'March'},所以有很多组合。

我正在研究如何根据filtervalues = {'January', 'Febuary' 'March'} 进行过滤

类似的东西

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

因此,如果列以 1 月至 12 月的 12 个 myData 列开始,我可以为 1 月、2 月、3 月做一个过滤器,并且 filterColumns 得到一个包含 3 个 myData 嵌套对象的列,其月名分别为 Jan、Feb 和 Mar。

有没有一种简单的方法可以在 typescript 中的嵌套集合上执行此操作?

谢谢

【问题讨论】:

  • 不要试图解释,而是请发布您的 JSON ...

标签: angular typescript


【解决方案1】:

首先,您的filterValues 应该是Array

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

然后你可以使用.includes() function:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2016-10-25
    • 2021-08-30
    • 1970-01-01
    • 2016-11-03
    相关资源
    最近更新 更多