Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.03.2020, 21:34
Профессор
Отправить личное сообщение для CryNet Посмотреть профиль Найти все сообщения от CryNet
 
Регистрация: 02.01.2019
Сообщений: 151

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

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, 21.03.2020 в 21:36.
Ответить с цитированием
  #2 (permalink)  
Старый 21.03.2020, 21:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

CryNet,

const keys = Object(filters);
const item = items.filter(element => keys.every(key => filters[key] === element[key] );
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать проверку на display: block; ufaclub jQuery 3 22.12.2013 19:21
Как сделать калькулятор и с чего начать? A.P. Yellowman Общие вопросы Javascript 3 15.11.2013 21:32
Как сделать реакцию на изменение любого элемента формы. Mik Events/DOM/Window 3 28.07.2011 08:52
Как убрать hover? Либо как сделать стрелки статичными? krusty36 Элементы интерфейса 1 13.07.2011 09:20
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06