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

292
Visualizações
How to calculate sum of array in JavaScript

I want to calculate sum of array data in JavaScript.

Array :

[
  {
    red_team: {
      count: 2,
      money: 3000,
    },
    blue_team: {
      count: 10,
      money: 100000,
    },
  },
  {
    red_team: {
      count: 1,
      money: 1000,
    },
    blue_team: {
      count: 100,
      money: 200000,
    },
  }
]

Expected Result :

{
  red_team: {
    count: 3,
    money: 4000,
  },
  blue_team: {
    count: 110,
    money: 300000,
  },
}

Note : red_team & blue_team is an Enum.

how can I calculate it ?

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

0

Spread the array into lodash's _.mergeWith(), and create a customizer that sums number, but returns undefined for all other types, so that lodash would handle all other cases:

const data = [{"red_team":{"count":2,"money":3000},"blue_team":{"count":10,"money":100000}},{"red_team":{"count":1,"money":1000},"blue_team":{"count":100,"money":200000}}]


const result = _.mergeWith({}, ...data, (a, b) => 
  _.isNumber(a) ? a + b : undefined
)

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

about 4 years ago · Juan Pablo Isaza Relatório

0

Per a comment above, an infinite ways of doing this. I just came up with one (rather verbose admittedly)

Verbose solution:

const arr = [
  {
    red_team: {
      count: 2,
      money: 3000,
    },
    blue_team: {
      count: 10,
      money: 100000,
    },
  },
  {
    red_team: {
      count: 1,
      money: 1000,
    },
    blue_team: {
      count: 100,
      money: 200000,
    },
  }
];

function sumByKeyAndProperty(arr, key, property){
  let sum = 0
  arr.forEach((obj) => {
    sum+=obj[key][property]
  })
  return sum
}

returnObj = {
  red_team: {
    count: sumByKeyAndProperty(arr, 'red_team', 'count'),
    money: sumByKeyAndProperty(arr, 'red_team', 'money'),
  },
  blue_team: {
    count: sumByKeyAndProperty(arr, 'blue_team', 'count'),
    money: sumByKeyAndProperty(arr, 'blue_team', 'money'),
  }
}

console.log(returnObj)
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