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]
とにかく、時間オブジェクトの配列の平均を計算するには?