Как сгенерировать 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 шт):

Автор решения: Vasily

Что бы генерировать уникальные ID для каждой позиции товара в момент когда Вы получаете данные можно воспользоваться утилитами типа uuidv4.

В этом случае Вам не нужно будет "собирать" ключ из нескольких "полей" (типа name, description, и category) что бы гарантировать его уникальность, вероятность того что он повториться крайне мала.

→ Ссылка