tengo una pregunta, hice este código para actualizar mi almacenamiento local, así que todo funciona, pero cuando actualizo mi almacenamiento local para agregar cantidades, por ejemplo, si ya tengo 2 sofás y agrego 2 sofás más en mi almacenamiento local, el resultado es 22
Así que creo que falta algo de "parseInt" en mi código, pero realmente no sé dónde, así que sería genial si me pudieran ayudar. Realmente no sé qué hacer.
btnCart.addEventListener("click", (event)=>{ event.preventDefault(); function addToCart() { let color = colorChoice.value; console.log(color); let name = productName; console.log(name); let price = productPrice; console.log(price); let quantity = productQuantity.value; console.log(quantity); const productToAdd = { id : id, name : name, price : price, color: color, quantity: quantity }; const currentCart = JSON.parse(localStorage.getItem(cartName)) ?? []; const itemIndex = currentCart.findIndex((item) => item.id === productToAdd.id && item.color === productToAdd.color ); if (itemIndex !== -1) { currentCart[itemIndex].quantity += productToAdd.quantity; } else { currentCart.push(productToAdd); } localStorage.setItem(cartName, JSON.stringify(currentCart)); } addToCart(); })Cadenas de retorno de LocalStorage, por lo que no puede hacer:
currentCart[itemIndex].quantity += productToAdd.quantity;Debe analizar el valor de almacenamiento local, por ejemplo:
const qty = parseInt(currentCart[itemIndex].quantity); currentCart[itemIndex].quantity = qty + productToAdd.quantity;