0

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
}]
Alkari
  • 116
  • 2
  • 11

1 Answers1

2

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)
IT goldman
  • 14,885
  • 2
  • 14
  • 28