"/abcd.com", "time"=>0.503}, {"path"=>"/abcd.com", "time"=>0.76-6ren">
gpt4 book ai didi

arrays - 如何在 Ruby 中找到哈希数组的平均值

转载 作者:数据小太阳 更新时间:2023-10-29 08:57:08 25 4
gpt4 key购买 nike

我试图在一个数组中找到几个散列的平均值,如下所示:

[{"path"=>"/abcd.com", "time"=>0.503},
{"path"=>"/abcd.com", "time"=>0.765},
{"path"=>"/abcd.com", "time"=>0.553}]

数组按路径分组,我想找出加载该路径所需的平均时间。

这是我目前所拥有的:

 averages = grouped_data.each do |array|
array.each do |hash|
hash["time"].reduce(:+) \ hash.length
end
end

我认为它不起作用,因为散列中的时间是 float 。所以我尝试通过添加总数而不使用 reduce 来解决这个问题,但是 total 返回了 0:

 averages = grouped_data.each do |array|
total = 0
array.each do |hash|
hash["time"] += total \ hash.length
end
return total
end

我很感激任何帮助。谢谢!

最佳答案

试试这个:

array = [{"path"=>"/sale.html", "time"=>0.503}, {"path"=>"/sale.html", "time"=>0.765}, {"path"=>"/sale.html", "time"=>0.553}]
average = array.map { |x| x["time"] }.sum / array.size # 0.6070

你也可以直接在数组上使用sum:

average = array.sum { |x| x["time"] } / array.size # 0.6070

关于arrays - 如何在 Ruby 中找到哈希数组的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49726673/

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