Estoy agregando los artículos en la matriz del carrito de la compra si la cantidad del artículo es mayor que la cantidad del artículo del carrito o está vacía. Después de su primera entrada, el artículo no se agregará nuevamente si la identificación coincide con la identificación del artículo del carrito de compras. Utilicé la función map y utilicé la condición if pero no funciona.
El problema es: supongamos que estoy agregando la identificación del artículo 1 en el primer golpe, se está agregando a la matriz del carrito de compras. Y luego, cuántos agrego al carrito, el artículo no se agrega nuevamente a la matriz del carrito de compras. Si agrego un artículo diferente, se agrega a la matriz del carrito de compras. Todo está bien hasta ahora.
Pero si vuelvo a hacer clic en cualquiera de ellos, existe en la matriz del carrito de la compra, pero se agregó a la matriz del carrito de la compra y no le importa la condición.
Código:
addToCart(itemtoAdd){ this.itemList.map((item,index)=>{ if(item.id ==itemtoAdd.id){ if(item.quantity> 0 ){ if(this.shopcart.length === 0){ item.quantity = item.quantity -1; this.shopcart.push(itemtoAdd); console.log(this.shopcart) this.cartCount = 1; }else{ this.shopcart.map((shopitem)=>{ if(shopitem.id==itemtoAdd.id){ item.quantity = item.quantity -1; this.cartCount = this.cartCount+1; console.log(this.shopcart); }else{ this.shopcart.map((shopitem)=>{ if(shopitem.id!== itemtoAdd.id){ item.quantity = item.quantity -1; this.shopcart.push(itemtoAdd); this.cartCount = this.cartCount+1; console.log(this.shopcart); } }) } }); } } } }); }