Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сделать фильтр по нескольким параметрам? (https://javascript.ru/forum/misc/79767-kak-sdelat-filtr-po-neskolkim-parametram.html)

CryNet 21.03.2020 21:34

Как сделать фильтр по нескольким параметрам?
 
Есть фильтры такого вида:

let filters = {
// тут может меняться true на false и обратно
    new: false,
    action: true,
    popular: true,
    price: false
  }


Есть айтемы:

let items = [
    {action : true, new : true, name : 'Морський'},
    {action : true, new : false, name : 'Дольче Віта' },
    {action : false, new : false,name : 'Спекотний сезон' },
    {action : false, new : true, name : 'Уікенд' },
]



Как отфильтровать айтемы по всем фильтрам? Я пробую так:

const item = items.filter(element => element.action && element.new && ...)


Но хотелось бы в цикле вывести все фильтры и проверить по ним.

рони 21.03.2020 21:56

CryNet,

const keys = Object(filters);
const item = items.filter(element => keys.every(key => filters[key] === element[key] );


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