【发布时间】:2018-06-26 10:29:06
【问题描述】:
我很难找到我在其他 stackoverflow 帖子中寻找的解决方案,尽管我强烈认为它必须存在。如果是这样,请朝着正确的方向前进。
我正在尝试使用体育数据在 javascript 中创建一个非常标准的组。我有以下对象数组:
const myData = [
{team: "GSW", pts: 120, ast: 18, reb: 11},
{team: "GSW", pts: 125, ast: 28, reb: 18},
{team: "GSW", pts: 110, ast: 35, reb: 47},
{team: "HOU", pts: 100, ast: 17, reb: 43},
{team: "HOU", pts: 102, ast: 14, reb: 32},
{team: "SAS", pts: 127, ast: 21, reb: 25},
{team: "SAS", pts: 135, ast: 25, reb: 37},
{team: "SAS", pts: 142, ast: 18, reb: 27}
]
我数据中的每一行对应于特定篮球比赛的结果。简单地说,我想按数据分组,并对分组数据应用平均值/平均值函数。我期望的结果是:
const groupedData = [
{team: "GSW", pts: 118.3, ast: 27.0, reb: 25.3},
{team: "HOU", pts: 101, ast: 15.5, reb: 37.5},
{team: "SAS", pts: 134.7, ast: 21.3, reb: 29.7}
]
我更喜欢在这里使用带有 reduce() 的 vanilla javascript...鉴于我对 reduce 的了解,这似乎是最好的方法。我目前正在为此工作,如果我能在其他人发布答案之前让它工作,我会发布。
编辑:我的实际数据有大约 30 个键。我希望找到一个解决方案,它只要求我(a)仅指定要分组的团队列,并假设它对其余列进行分组,或者(b)传递一个统计列数组(pts、asts等)。 ) 而不是为每个统计数据创建一行。
谢谢!
【问题讨论】:
-
您需要分步进行,因为您需要拥有所有数据才能平均点数和其余数据
-
你说所有数据都需要“有序”是什么意思
-
为了“为了煮水,你需要先把它加热”。所以首先你需要对所有数据进行分组,然后你需要通过它来计算平均值。
-
从发布的前几个答案中,我明白你现在的意思了
标签: javascript group-by