【发布时间】:2020-10-25 08:14:40
【问题描述】:
下面给出了一个数组数据:
const ratingData = [
{name: 'St. Marys School', rating:5},
{name: 'St. Zaviers School', rating:4},
{name: 'St. Marys School', rating:3},
{name: 'Rahul English Medium School', rating:2},
{name: 'St. Francis High School', rating:3},
{name: 'Rahul English Medium School', rating:1},
{name: 'St. Francis High School', rating:4},
{name: 'Mother Marys High School', rating:5}
];
在这个数组中,我想计算每个学校数据的平均评分。但问题是重复的条目,例如“St. Mary's School”有 2 个具有不同评级的条目。如何合并为一个并计算其平均评级?我尝试使用 map 函数,但对于每个条目,它都不起作用。
它的 o/p 应该看起来像这样。 (这只是一个例子)
const output = [
{ name: 'St. Marys School', averageRating: 4},
{ name: 'St. Zaviers School', averageRating: 4},
{ name: 'Rahul English Medium School', averageRating: 1.5},
{ name: 'St. Francis High School', averageRating: 3.5},
{ name: 'Mother Marys High School', averageRating: 5}
];
【问题讨论】:
-
您应该尝试自己编写代码。在doing more research 之后,如果您仍然有问题,请发布您尝试过的内容,并清楚地解释什么不起作用,并提供minimal reproducible example。阅读How to Ask 一个好问题。请务必tour 并阅读this。
-
array.reduce()是你的朋友。 -
我会分多个步骤执行此操作 - 首先构建
name => ratings的地图,然后平均评分,然后将其重新构建为所需的输出数组。
标签: javascript arrays average