gpt4 book ai didi

ruby - Ruby 中作为字符串的平均时间数组

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:07 25 4
gpt4 key购买 nike

我有一个数组:

array = ["0:00:31", "0:00:52", "0:01:05", "0:00:55", "0:01:33", "0:00:05", "0:00:01", 
"0:05:10", "0:02:40", "0:03:03", "0:01:33", "0:00:00"]

我需要计算数组中所有不等于 "0:00:00" 的时间的平均值。 "0:00:00" 应该被丢弃。

执行此操作的最佳方法是什么?我目前正在循环遍历数组,删除所有 0:00:00 值,将字符串转换为整数并进行平均 - 但看起来我的代码很多努力去做。

最佳答案

(sz = array.reject    {|t| t == '0:00:00' }).
map {|t| Time.parse t }.
reduce(0) {|a, t| a += t.to_i }.to_f / sz.size

您想将这些东西分组到功能操作中。拒绝你不需要的东西,然后对其余的采取行动。

在这里,reduce 是获得数组平均值的可行方法,and has been answered before.


这里有一个更简洁、更隐蔽的替代方案

(sz = array.reject {|t| t == '0:00:00'     }).
map {|t| Time.parse(t).to_i }.
reduce(:+).to_f / sz.size

关于ruby - Ruby 中作为字符串的平均时间数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20223656/

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