Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

289
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!