отфильтруйте и верните несколько значений массива

#javascript #arrays #reactjs #filter

Вопрос:

В контейнере react я хотел бы отфильтровать несколько значений массива и вернуть результат, если какое-либо из значений содержит отфильтрованные данные.

Мой код возвращает результаты только те, которые являются последними в моем списке фильтров (в данном случае «санскрит»). Если я изменил порядок возврата на: return (sanskrit, english) -, то он фильтрует только «английские» значения.

Может кто-нибудь, пожалуйста, посоветовать, как я мог бы отфильтровать как «санскритские», так и «английские» имена в моей базе данных? Заранее спасибо.

Вот мой фрагмент кода:

 const filteredAsanas = asanas.filter((asana) => {
    const english = asana.english_name.toLowerCase().includes(searchfield.toLowerCase()),
    sanskrit = asana.sanskrit_name.toLowerCase().includes(searchfield.toLowerCase());
    return (english, sanskrit)
});
 

Вот пример моего json:

 {
   "id":1,
   "sanskrit_name":"Navasana",
   "english_name":"Boat",
   "img_url":"placeholder for the image url"
}
 

Комментарии:

1. Спасибо @georg , я понимаю

Ответ №1:

Вам нужно вернуться english || sanskrit

 const filteredAsanas = asanas.filter((asana) => {
    const english = asana.english_name.toLowerCase().includes(searchfield.toLowerCase()),
    sanskrit = asana.sanskrit_name.toLowerCase().includes(searchfield.toLowerCase());
    return english || sanskrit
});
 

Комментарии:

1. Спасибо @Soufiane, это помогло, теперь это работает!