Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

101
Visualizações
Cómo sumar cada valor dentro de la matriz del objeto a la nueva variable

Tengo un dato como este:

 const fund = [ { id: 1234, totalAmount: 0, data: [ { id: 1234, amount: '4.000' }, { id: 1234, amount: '3.000' } ] }, { id: 12345, totalAmount: 0 }, { id: 123456, totalAmount: 0 data: [ { id: 123456, amount: '3.000' }, { id: 123456, amount: '5.000' } ] } ]

Quiero sumar la amount dentro de data de cada ID a una clave llamada totalAmount . Pero no todas las id de los padres tienen una clave data .

aquí está mi resultado deseado:

 const fund = [ { id: 1234 data: [ { id: 1234, amount: '4.000' }, { id: 1234, amount: '3.000' } ], totalAmount: 7000 }, { id: 12345, totalAmount: 0 }, { id: 123456, data: [ { id: 123456, amount: '3.000' }, { id: 123456, amount: '5.000' } ], totalAmount: 8000 } ]

Estaba intentando con este código:

 fund.forEach((elA, i) => { if (elA.data) { const total = funders[i].data.reduce((acc, curr) => { acc += parseInt(curr.amount.replace(/\./g, '')) return acc }) fund[i] = total ? {...elA, totalAmount: total} : elA; } })

Pero no está sumando como yo quiero.

¿Dónde está mi error?

Pregúnteme si necesita más información si aún no es suficiente para resolver ese caso.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Debe definir el valor inicial para el iterador de reducción .

 fund.forEach((elA, i) => { if (elA.data) { const total = funders[i].data.reduce((acc, curr) => { acc += parseInt(curr.amount.replace(/\./g, '')) return acc }, 0) fund[i] = total ? {...elA, totalAmount: total} : elA; } });

Otra alternativa para el mismo código:

 fund.forEach(elA => { if (elA.data) { const total = elA.data.reduce((acc, curr) => { return acc + parseInt(curr.amount.replace(/\./g, '')) }, 0) elA.totalAmount = total; } });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda