I have the following array:
JavaScript
x
8
1
[
2
{ user: 5fde62aa0cec1598fda103ac, feeling: 'positive' },
3
{ user: 5fde62a10cec1598fd9f9222, feeling: 'indifferent' },
4
{ user: 5fde62aa0cec1598fda103ac, feeling: 'positive' },
5
{ user: 5fde62a10cec1598fd9f9222, feeling: 'negative' },
6
{ user: 5fde62930cec1598fd9d426c, feeling: 'positive' }
7
]
8
After running it through .groupBy in a _.chain, I get the following:
JavaScript
1
6
1
{
2
'5fde62aa0cec1598fda103ac': { positive: 2 },
3
'5fde62a10cec1598fd9f9222': { negative: 1, indifferent: 1 },
4
'5fde62930cec1598fd9d426c': { positive: 1 }
5
}
6
How can I then transform it to the following?
JavaScript
1
6
1
[
2
{id:'5fde62aa0cec1598fda103ac', positive: 2, negative: 0, indifferent: 0 }
3
{id:'5fde62a10cec1598fd9f9222', positive: 0, negative: 1, indifferent: 1 }
4
{id:'5fde62930cec1598fd9d426c', positive: 1, negative: 0, indifferent: 0}
5
]
6
I suspect that .transform is correct, just can’t figure out how to make it work.
Advertisement
Answer
JavaScript
1
9
1
_.transform(theData, function(result, value, key) {
2
result.push({
3
id : key,
4
positive: value.positive || 0,
5
negative: value.negative || 0,
6
indifferent: value.indifferent || 0
7
})
8
}, []);
9