Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   из массива объектов пересобрать массивы для фильтров параметров (https://javascript.ru/forum/events/81648-iz-massiva-obektov-peresobrat-massivy-dlya-filtrov-parametrov.html)

sovsem-nub 21.01.2021 12:48

Цитата:

Сообщение от рони (Сообщение 533019)
sovsem-nub,
лучше не формировать поиск по eyeColor или попробовать так

eyeColor : a => a && ['green', 'blue'].some(f => a.indexOf(f) != -1)

Писал целое сочинение, как оно не работает только потом увидел &&
Спасибо Рони, теперь все работает как надо :)

рони 21.01.2021 13:07

sovsem-nub,
логика формирования параметров фильтрации, селекторы css даны условно
let obj = {};
let parametrs = [obj];
let color = document.querySelectorAll('.color :checked');
if (color.length) {
    color = color.map(({value}) => value);
    obj.color = a => a && color.some(f => a.indexOf(f) != -1)
}
let size = document.querySelectorAll('.size :checked');
if (size.length) {
    size = color.map(({value}) => value);
    obj.size = a => a && size.some(f => a.indexOf(f) != -1)
}
let from = +document.querySelector('.pricefrom').value;
let to = +document.querySelector('.priceto').value;
let f;
if (from && to) f = a => a !== void 0 && +a >= from && +a <= to;
else if (from) f = a => a !== void 0 && +a >= from;
else if (to) f = a => a !== void 0 && +a <= to;
if (f) obj.price = f;


Часовой пояс GMT +3, время: 07:01.