Угловой машинописный массив фильтрует базу сбора массива значений типа SQL «in»

#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));