in this code, instead of showing “The product has been added to cart.” alert message, I want to update cart quantity if item already exist in cart, please help me out.
const addToCart = (id) => { const check = cart.every((item) => { return item.id !== id; }); if (check) { const cartData = products.filter((el) => { return el.id === id; }); setCart([...cart, ...cartData]); } else { alert('The product has been added to cart.'); }
Advertisement
Answer
I am making some assumptions here as to what your variables look like, but generally, here is what you need:
const products = [{id: 1, name: 'Prod 1'}, {id: 2, name: 'Prod 2'}, {id: 3, name: 'Prod 3'}, {id: 4, name: 'Prod 4'}] const cart = [{id: 1, name: 'Prod 1', quantity: 1}, {id: 4, name: 'Prod 4', quantity: 1}]; const addToCart = (id) => { const check_index = cart.findIndex(item => item.id === id); if (check_index !== -1) { cart[check_index].quantity++; console.log("Quantity updated:", cart); } else { cart.push({...products.find(p => p.id === id), quantity: 1}) console.log('The product has been added to cart:', cart); } } addToCart(4)