Я пишу пользовательскую корзину для своего портфолио проекта. Я хочу сохранить идентификаторы продуктов, а также подсчитать, сколько конкретных идентификаторов находится в моем хранилище. Я хочу, чтобы мои данные выглядели так:
[
{id: '64783', count: '5'},
{id: '111', count: '50'},
]
Так как данные находятся в localStorage, у меня есть пользовательский анализ JSON и строка, но я не знаю, как достичь модели данных в LS, который я перечислилвыше. Конечно, я могу просто сохранить несколько идентификаторов, даже если они совпадают, и затем отфильтровать их при отображении корзины покупок, но я не думаю, что это оптимально.
export const addToCart = (id, userIsLoggedIn) => {
let cart = [];
let itemToAdd = {
id,
count: 0,
};
if (localStorage.getItem('cart')){
cart = JSON.parse(localStorage.getItem('cart'));
let count = cart.filter(el => el.id === id).length
console.log(count)
}
cart.push(itemToAdd);
localStorage.setItem('cart', JSON.stringify(cart))
console.log(localStorage.getItem('cart'))
};
Я могу получить значениесчитайте правильно, но моя функция все еще добавляет весь объект вместо обновления счетчика элемента.
Как я могу решить эту проблему?