Как объединить несколько фильтров в javascript или lodash?

#javascript #reactjs #react-native

#javascript #reactjs #react-native

Вопрос:

Итак, я создаю экран фильтра React Native, когда пользователь нажимает применить фильтр, мы получим массив

 Input Array

type = ["A/C", "Seater", "Sleeper"];
  

Некоторое время я буду получать только один из приведенных выше, в этом случае я могу легко использовать filter из lodash для запуска функции filter. Но если я получу массив, подобный приведенному выше, как реализовать это с помощью filter?

Поскольку пользователь может захотеть отфильтровать список, используя только A / C или иногда A / C и Seater, когда мы получаем более одного выбора, как реализовать это в фильтре?

 trying with switch

filterHandler(depature, busType)
    {   
         switch (depature) {
             case type:
                 this.setState({ availableList: this.state.List.filter(o => o.AC === "true")});
             default:
                 return;
         }
    }
  

Поскольку, если я использую регистр переключения для каждого, то мой регистр переключения будет очень большим, есть ли какой-нибудь профессиональный способ сделать это?

Ответ №1:

Как я понял, вы хотите отфильтровать некоторый массив, используя другой массив. Вы могли бы сделать это так:

 const filteredArray = arrayToFilter.filter(item=>type.every(t=>item[t]))