Я храню корзину в localStorage. Если я нажимаю на новый продукт, я хочу добавить его в корзину. Если я снова нажму на тот же товар, я хочу добавить к количеству, чтобы избежать двойных записей.
Я хочу пройтись по объектам и проверить, соответствует ли свойство "id" объекта параметру "Id", отправленному в функцию. Если это так, я хочу обновить «кол-во» этого объекта, в противном случае создайте новый объект и добавьте в «корзину». Сейчас я проверяю, соответствует ли каждое свойство параметру "Id".
Вот как выглядит объект:
{id:Id, qty: Qty, price: Price}
Это функция:
handleAdd =(Id, Qty, Price) =>{
var newCart=[]
var cart = JSON.parse(window.localStorage.getItem('Cart'))
if(cart !== null){
for(var x in cart)
{
if(x.id === Id){
x.qty = Number(x.qty) + Number(Qty)
}
else{
var item = {id:Id, qty: Qty, price: Price}
newCart.push(item)
}
}
}else{
newCart= {id:Id, qty: Qty, price: Price}
}
window.localStorage.setItem('Cart', JSON.stringify(newCart))
}