I have a data structure like this one. It's basiccally an array of objects.
const dataset = [
{
a: { total: 2, name: "red" },
b: { total: 3, name: "gold" },
c: { total: 6, name: "rose" },
},
{
a: { total: 10, name: "red" },
b: { total: 7, name: "purple" },
},
{
a: { total: 1, name: "pink" },
b: { total: 14, name: "blue" },
c: { total: 10, name: "rose" },
},
{
b: { total: 2, name: "green" },
c: { total: 18, name: "rose" },
},
]
This is what I would like to compute as result:
const result = {
a: 13,
b: 26,
c: 34,
}
So, I need a sum of values total
by objects with same key.I try to explain myself using the previous example:
const result = {
a: 13, // 2 + 10 + 1
b: 26, // 3 + 7 + 14 + 2
c: 34, // 6 + 10 + 18
}
Note that the keys a
, b
, c
can be a lot (not only 3) and I don't know their name because they are dynamic.
How can I do that? I thought to group the objects {total, name}
by keys and then sum by total
but how? Is there a Lodash function that can help me?