1, "number_of_matches" => 2, "goals" -6ren">
gpt4 book ai didi

ruby - 如何计算数组中对象的平均值?

转载 作者:数据小太阳 更新时间:2023-10-29 06:52:11 24 4
gpt4 key购买 nike

假设我有一个这样的数组:

[
{
"player_id" => 1,
"number_of_matches" => 2,
"goals" => 5
},
{
"player_id" => 2,
"number_of_matches" => 4,
"goals" => 10
}
]

我想要所有球员每场比赛的平均进球数,不是每个球员的平均进球数,而是总平均进球数。

我想用 .each 来做这件事并存储每个单独的平均值,最后将它们全部相加并除以我拥有的玩家数量。但是,我正在寻找一种 Ruby/单行方式来执行此操作。

最佳答案

根据要求,一行:

avg = xs.map { |x| x["goals"].to_f / x["number_of_matches"] }.reduce(:+) / xs.size

一个更具可读性的片段:

goals, matches = xs.map { |x| [x["goals"], x["number_of_matches"]] }.transpose 
avg = goals.reduce(:+).to_f / matches.reduce(:+) if goals

关于ruby - 如何计算数组中对象的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9639262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com