我正在使用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。
在打字稿中的嵌套集合上有一种简便的方法吗?
谢谢
答案 0 :(得分:2)
首先,您的filterValues
应该是Array
:
const filterValues = ['January', 'February', 'March'];
然后您可以使用.includes()
function:
let filterColumns = Columns[0].myData.filter(f => filterValues.includes(f.monthName));