#angular #typescript
#угловой #typescript
Вопрос:
Я использую 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);
Итак, если столбцы начинались со столбцов с 12 myData для января по декабрь, я могу выполнить фильтр для января, февраля, марта, и столбцы фильтров получат столбцы с 3 вложенными объектами myData с именем месяца Jan, Feb и Mar.
есть ли простой способ сделать это для вложенной коллекции в typescript?
Спасибо
Комментарии:
1. Не пытайтесь объяснять, вместо этого, пожалуйста, опубликуйте свой JSON…
Ответ №1:
Прежде всего, ваш filterValues
должен быть Array
:
const filterValues = ['January', 'February', 'March'];
Затем вы можете использовать .includes()
функцию:
let filterColumns = Columns[0].myData.filter(f => filterValues.includes(f.monthName));