平均阵列我有我的Array
类下面的方法:红宝石次:
class Array
def avg
if partial_include?(":")
avg_times
else
blank? and 0.0 or (sum.to_f/size).round(2)
end
end
def avg_times
avg_minutes = self.map do |x|
hour, minute = x.split(':')
total_minutes = hour.to_i * 60 + minute.to_i
end.inject(:+)/size
"#{avg_minutes/60}:#{avg_minutes%60}"
end
def partial_include?(search_term)
self.each do |e|
return true if e[search_term]
end
return false
end
end
这个伟大的工程与常规的数字数组,但有可能在那里我有次一个数组实例。
例如:[18:35, 19:07, 23:09]
反正找出时间对象的数组的平均?
是那种格式的字符串或日期时间对象? – hirolau
你可以调用'to_i'来获得总和和除法。如果你首先减去偏移量,速度会更快,所以你不使用'Bignum' – bdares
他们曾经混合过,或者它总是数字或时间从来都不是? –