Задать вопрос

Как мне фильтровать по нескольким значением данные?

У меня все работает если идет одна фильтрация, но если делается несколько, то которая верхняя филтрация она преобладает над нижней, как примерно сделать чтобы учитывались данные, которые приходят из двух филтров?
https://codesandbox.io/s/pyvjxxnnvj
Код данные где фильтруются находится в App.vue:212 в computed employeeList
  • Вопрос задан
  • 200 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skypro
    Frontend-разработчик с нуля
    9 месяцев
    Далее
  • Skypro
    JavaScript-разработчик с нуля
    9 месяцев
    Далее
  • Skypro
    React-разработчик с нуля
    9 месяцев
    Далее
Решения вопроса 1
@SeaBreeze876
Front-end разработчик
employeeList: function() {
  return this.items.filter(item => 
    Object.keys(this.filterItems).reduce((acc, filterKey) => {
      let filterCondition = this.filterItems[filterKey];
      return acc && !!~item[filterKey].indexOf(filterCondition);
    }, true)
  ).sort(....);
}

в предикате делаем свертку filterItems, если хоть одно его свойство не удовлетворит условию !!~item[filterKey].indexOf(filterCondition), предикат вернет false и элемент фильтранется
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы