Как сгенерировать ID для товара? JS
Суть такая, есть список для типов продуктов:
Для каждого типа я указал свой data-атрибут типа data-name="sandwiches".
На каждый элемент списка я повесил событие клика с fetch, где я делаю выборку из json и достаю определенный товар в зависимости от выбранного типа (data-атрибута).
Получается один клик - одна выборка, данные о товаре приходят в таком виде:
{
"name": "Овощной",
"description": "Соус и овощи на выбор",
"image": "/i/sandwiches/ovoshnoy.png",
"price": 105,
"category": "sandwiches",
"market": "subway",
"type": "multiple",
"weight": 1,
"components": {
"size": {},
"bread": "white-italian",
"vegetable": [],
"sauce": [],
"filling": []
}
},
{
"name": "Индейка",
"description": "Сэндвич с индейкой, соус и овощи на выбор",
"image": "/i/sandwiches/ind.png",
"price": 130,
"category": "sandwiches",
"market": "subway",
"type": "multiple",
"weight": 1,
"components": {
"size": "1x",
"bread": "white-italian",
"vegetable": [],
"sauce": [],
"filling": []
}
}
и т.д, порядка 150 наименований.
Проблема в том, что у этих продуктов нет своего ID, а мне их нужно добавлять\удалять в\из корзину\ы.
Я пробовал отталкиваться от имени продукта, но есть продукты, которые могут быть составлены из ингредиентов, соответственно в корзине могут быть продукты с одинаковыми именами (но разным содержимым), и получается чтобы узнать по какому продукту я кликнул, мне нужно отталкиваться от его имени.
А имена могут повторяться и придумывать какие-то велосипеды для проверки содержимого, считаю что это не верно.
Вопрос: как правильно сгенерировать ID самому для каждого продукта после fetch.
Напомню, что я сделал один клик - один fetch, выборку я ни где не сохраняю, она каждый раз новая, кроме как сохранить в ЛС я больше не знаю как, но использовать ЛС пока не хочу.
Может быть Вы предложите какие-нибудь другие варианты.
Спасибо!
Ответы (1 шт):
Что бы генерировать уникальные ID для каждой позиции товара в момент когда Вы получаете данные можно воспользоваться утилитами типа uuidv4.
В этом случае Вам не нужно будет "собирать" ключ из нескольких "полей" (типа name, description, и category) что бы гарантировать его уникальность, вероятность того что он повториться крайне мала.
