Tengo una variedad de artículos, donde necesito obtener una cadena del precio de cada producto.
const input = [{id: 1, amount: 20}, {id: 2, amount: 40}, {id: 3, amount: 90}] const output = input?.reduce((acc, curr) => { acc += `$${curr.amount}+`; return acc; }, '') console.log(output)La salida esperada es $20+$40+$90
Pero cuando estoy probando este código, obtengo la suma de $ 150 y no quiero tener + al final si no hay más artículos.
¿Por qué Array.reduce() ? Este es un ejemplo clásico de Array.map() :
const input = [{id: 1, amount: 20}, {id: 2, amount: 40}, {id: 3, amount: 90}] const expression = input.map( ({ amount }) => `$${amount}` // destructure the object, keep only .amount ).join('+'); console.log(expression);Lea acerca de la desestructuración en la documentación de JavaScript.
Puede usar el mapa para extraer los valores seguidos de una combinación para crear la cadena.
input.map(i => `$${i.amount}`).join('+') const input = [{ id: 1, amount: 20 }, { id: 2, amount: 40 }, { id: 3, amount: 90 }] const output = input?.slice(1).reduce((acc, curr) => { acc += `+$${curr.amount}`; return acc; }, input.length ? `$${input[0].amount}` : ''); console.log(output)con mínima manipulación