Как сделать фильтр по нескольким параметрам?
Есть фильтры такого вида:
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 && ...) Но хотелось бы в цикле вывести все фильтры и проверить по ним. |
CryNet,
const keys = Object(filters); const item = items.filter(element => keys.every(key => filters[key] === element[key] ); |
Часовой пояс GMT +3, время: 13:23. |