Что ж, шаги, которые вы упомянули в своем вопросе, в целом верны.Однако я бы порекомендовал вам хранить его как массив объектов, а не просто как отдельный объект.
Вот как вы можете получить данные корзины из вашего localStorage.
let cart = JSON.parse(localStorage.getItem('cartObject'));
Затем мы используем Array.some () , чтобы проверить, существует ли новый элемент в вашем списке покупок в корзине с cartObject
.
let isInCart = false;
if (cart) {
isInCart = cart.some(item => item.productId ===
cartProductData.productId));
} else {
cart = [];
}
Затем мы обрабатываем егона основе isInCart
, который является логическим значением, которое указывает, существует ли элемент в корзине:
if (isInCart) {
cart.map(item => {
if (item.productId === cartProductData.productId) {
item.productQuantity += cartProductData.productQuantity;
}
return item;
});
} else {
cart.push(cartProductData);
}
Затем мы сохраняем обновленный cart
в вашем localStorage:
localStorage.setItem('cartObject', JSON.stringify(cart));