I have the following array:
[
{'id': 1, 'rating': 5, 'rating_category': "a"},
{'id': 1, 'rating': 1, 'rating_category': "a"},
{'id': 1, 'rating': 4, 'rating_category': "b"},
{'id': 1, 'rating': 5, 'rating_category': "b"},
]
And expect the following array:
[
{ category: "a", rating_average: 3, rating_count: 2},
{ category: "b", rating_average: 4.5, rating_count: 2},
]
My approach works only partially. I just don't get the array format I want. I get a [key : {}, key : {}] but I want to get [{},{}]. My problem is checking if the key already exists in the array.
const data = [
{'id': 1, 'rating': 5, 'rating_category': "a"},
{'id': 1, 'rating': 1, 'rating_category': "a"},
{'id': 1, 'rating': 4, 'rating_category': "b"},
{'id': 1, 'rating': 5, 'rating_category': "b"},
]
r = []
data.forEach(e => {
if (! r[e.rating_category]) {
r[e.rating_category] = {
rating: e.rating,
count: 1
};
} else {
r[e.rating_category]['rating'] += e.rating
r[e.rating_category]['count']++
}
})
console.log(r.a, r.b)