Search code examples
javascriptarraysalgorithmjavascript-objects

How can I find the sum of of Similar array object values and separate them based on their values


I have the following array object

  [{ count: 2, created_data: "2022 07 19" },
  { count: 4, created_data: "2022 07 19" },
  { count: 4, created_data: "2022 07 19" },
  { count: 1, created_data: "2022 07 20" },
  { count: 1, created_data: "2022 07 20" }]

I would want to add the objects and get their sums based on the dates. So the result should look something like this

[{
  "2022 07 19" : 10,
  "2022 07 20" : 2
}]

Solution

  • Just group by the desired property using reduce method.

    var data = [{ count: 2, created_data: "2022 07 19" },
      { count: 4, created_data: "2022 07 19" },
      { count: 4, created_data: "2022 07 19" },
      { count: 1, created_data: "2022 07 20" },
      { count: 1, created_data: "2022 07 20" }]
      
    var result = [data.reduce(function(agg, item) {
      agg[item.created_data] = (agg[item.created_data] || 0) + item.count
      return agg
    }, {})]
    
    console.log(result)