0

I have an array like so --

const array = [{name: "yes", num: 5}, {name: "yes", num: 10}, {name: "yes", num: 20}, {name: "no", num: 5}, {name: "no", num: 15}]

How would I go about getting the sum of the unique names? For instance "yes" == 35 & "no" == 20.

1 Answers1

0

Create a json-object containing those unique names and count:

var count = { }
array.forEach( element => {
  if ( count[ element.name ]) {
    count[ element.name ] += element.num
  } else {
    count[ element.name ] = element.num
  }
})
gXLg
  • 184
  • 13
  • 3
    One liner: array.reduce((acc,it)=>{acc[it.name]=acc[it.name]?acc[it.name]+=it.num:it.num; return acc}, {}) – Uzer Apr 16 '21 at 23:11