#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, это помогло, теперь это работает!