@PakoGonsalezZ

Как сопоставить данные двух обьектов?

Здравствуйте, пишу на сайте простенький фильтр,
атрибуты свойств товаров записываю в data
При нажатии на кнопку хочу показывать товары, которые соответсвуют выбранным chekbox
У input вывожу в дата id свойств,
<input data-id="27" data-type="type" type="checkbox" name="type" value="">

получаю такой обьект, всех выбранных
0: {id: 45, type: "type"}
1: {id: 36, type: "type"}
2: {id: 27, type: "type"}
3: {id: 70, type: "sex"}
4: {id: 72, type: "seson"}


У товара также вывожу id свойств которые у него выбраны,
<div class="product hover_open_add_to_basket" data-type0="20" data-type1="21" data-type2="22" data-type3="23" data-type4="42" data-type5="39" data-price="620">

проблема в том что у товара может быть выбрано несколько значений одного свойства, поэтому в имя data аттрибута пришлось вставлять индекс.
{type0: 20, type1: 21, type2: 22, type3: 23, type4: 42, …}
Подскажите, как показать товары у которых имеется хотя бы один выбранный тип, один выбранный пол и один выбранный сезон, как сопоставить два обьекта.
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Alex_Zdorgor
Превратить данные в объект (1) и сделать фильтр по массиву объектов, на совпадение свойств с объектом (1) данных.
Ответ написан
Если вы будете помещать в data-type список всех ID фильтров в товар, вместо множества data-typeN, то можно обойтись без лишних проверок на имя ключей в объекте dataset элемента с товаром.

Я набросал пример https://codepen.io/anon/pen/PypLjB
, но в данном решении нужно дополнительно следить, чтобы список data-types не содержал пробелов

... сам ответ описан в методе available()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы