Estoy trabajando en un producto y estoy tratando de crear una carga útil. Necesito que el total sea igual a totalPrice * taxRate . Intenté hacer esto por:
total: selectedQuantities.reduce((a, c) => a + c.value * c.price, 0).reduce((m, n) => m * n.taxRate)
y por:
total: selectedQuantities.reduce((a, c) => a + c.value * c.price, 0) * devolucionItems.taxRate
Ninguno de estos funcionó, y realmente aprecio cualquier ayuda o consejo con esto, ¡gracias!
Carga útil completa:
const returnPayload = { ...devolucionItems, qty: totalQuantity, seller: devolucionItems.user._id, orderItems: devolucionItems.orderItems.map((item) => { const result = selectedQuantities.find((selectedItem) => selectedItem.id === item._id); return { ...item, qty: result.value, price: +result.price * +result.value, tax: result.tax}; }), itemsPrice: selectedQuantities.reduce((a, c) => a + c.price, 0), totalPrice: selectedQuantities.reduce((a, c) => a + c.value * c.price, 0), taxRate: devolucionItems.taxRate, total: selectedQuantities.reduce((a, c) => a + c.value * c.price, 0).reduce((m, n) => m * n.taxRate), };```No estoy seguro de por qué significa que no está funcionando. En su segundo cálculo, reducir no funcionará.
Sugeriría dar más contexto como el objeto de entrada y lo que obtiene y lo que esperaba, etc. Estaba tratando de crear el contexto que puede verificar a continuación, que funciona bien como se esperaba.
const devolucionItems = { taxRate:10 } const selectedQuantities = [ {value: 1, price: 100}, {value: 1, price: 100}, {value: 1, price: 100}, ] const returnPayload = { ...devolucionItems, itemsPrice: selectedQuantities.reduce((a, c) => a + c.price, 0), totalPrice: selectedQuantities.reduce((a, c) => a + c.value * c.price, 0), taxRate: devolucionItems.taxRate, total: selectedQuantities.reduce((a, c) => a + c.value * c.price, 0) * (devolucionItems.taxRate / 100), }; console.log(returnPayload);Producción:
{taxRate: 10, itemsPrice: 300, totalPrice: 300, total: 30}10 % de 300 = 30