【发布时间】:2020-11-05 16:09:48
【问题描述】:
我有以下哈希值,我想按年/月分组并对值求和:
range = {
"2020-11-06 00:00:00 +0000" => 234100.14176395803,
"2020-11-07 00:00:00 +0000" => 57731.63072153537,
"2020-11-08 00:00:00 +0000" => 68903.8902730576,
"2020-11-09 00:00:00 +0000" => 180971.98008691627,
........
"2021-02-01 00:00:00 +0000" => 169004.96299567595,
"2021-02-02 00:00:00 +0000" => 183363.9687217272,
"2021-02-03 00:00:00 +0000" => 200400.2505103338
}
我能够参加小组:hash = Hash[range.collect { |k,v| [k.to_date.strftime("%Y-%m"), v]}],但我无法获得值总和,值结果和哈希收集只是最后一天。
{
"2020-11" => 155346.83103528828,
"2020-12" => 175424.41029800082,
"2021-01" => 55366.44438577791,
"2021-02" => 200400.2505103338
}
使用reduce方法hash.values.reduce(:+)我可以得到总值,但我需要逐年逐月。
【问题讨论】:
标签: ruby-on-rails ruby ruby-hash