@HellYeahOmg

Как сделать фильтрацию товаров на javascript?

Пытаюсь сделать данное задание - https://github.com/KosyanMedia/test-tasks/tree/mas...
Залип на фильтрации билетов (#task2). Проблема в том, что можно выбрать несколько фильтров.
Как это реализовать? Через if..else не представляю как - слишком много условий. К тому же если выбрано одно условие, а тут выбирается второе, то нужно оба условия применять к исходному массиву, а не уже отсортированному. Вопросов, вообщем, много.
Слышал про либу mixItUp, но их сайт не открывается, а судя по статьям там можно реализовать только фильтрацию по 1 типу.
Данные храню в state у компонента.
  • Вопрос задан
  • 228 просмотров
Решения вопроса 2
shmatuan
@shmatuan
8 year of Web, 5 years of Vue
https://developer.mozilla.org/ru/docs/Web/JavaScri...
https://developer.mozilla.org/ru/docs/Web/JavaScri...

let filtres = [0, 1, 2] // кол-во пересадок
let filtered = tickets.filter(t => filtres.find(f => f === t.transfer )  )
Ответ написан
5beae483802d3257448574.png
const transplants = [0, 1, 2]; // пересадки
const prices = [10000, 15000]; // диапазон цен

// Фильтруем
const flights = tickets.filter(ticket => {
    const ticketTransplant = transplants.includes(ticket.stops); // проверяем пересадки
    const ticketPrice = ticket.price >= prices[0] && ticket.price <= prices[1]; // проверяем цену

    return ticketTransplant && ticketPrice;
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час