const products = [ { name: "Shirt", price: 20, discount: true }, { name: "Pants", price: 50, discount: false }, { name: "Hat", price: 15, discount: true }, { name: "Socks", price: 5, discount: true }, ]; const discountThreshold = 30; const discountRate = 0.1; const totalCost = products.reduce((acc, product) => { if (product.discount) { if (product.price > discountThreshold) { acc += product.price * (1 - discountRate); } else { acc += product.price; } } else { acc += product.price; } }, 0); console.log(`Total cost: ${totalCost}`);
Total cost is undefined. The reduce function is missing a return statement. The reduce function should return the accumulator after the iteration is complete.
const products = [ { name: "Shirt", price: 20, discount: true }, { name: "Pants", price: 50, discount: false }, { name: "Hat", price: 15, discount: true }, { name: "Socks", price: 5, discount: true }, ]; const discountThreshold = 30; const discountRate = 0.1; const totalCost = products.reduce((acc, product) => { if (product.discount) { if (product.price > discountThreshold) { acc += product.price * (1 - discountRate); } else { acc += product.price; } } else { acc += product.price; } return acc; }, 0); console.log(`Total cost: ${totalCost}`);