【发布时间】:2014-10-14 13:55:38
【问题描述】:
我有一个数据结构事件:
Event = Struct.new(:action, :date, :id)
data= []
data << Event.new('action1', '1/8/2014', 1)
data << Event.new('action1', '1/8/2014', 2)
data << Event.new('action1', '1/8/2014', 3)
data << Event.new('action1', '8/8/2014', 4)
data << Event.new('action2', '1/8/2014', 5)
data << Event.new('action2', '2/8/2014', 6)
data << Event.new('action2', '2/8/2014', 7)
我想根据action和date对数据进行分组,得到最终结果:
{
"action1" => {'1/8/2014' => 3, '8/8/2014' => 1 },
"action2" => {'1/8/2014' => 1, '2/8/2014' => 2 }
}
最终结果显示 action1 在 '1/8/2014' 重复了 3 次,在 '8/8/2014' 重复了一次。 action2 一次在 '1/8/2014' 和两次在 '2/8/2014'。
我首先尝试使用#group_by{|x| x.action} 对结果进行分组,然后尝试使用注入,但我的解决方案绝非简单。
【问题讨论】:
-
我忘了一个支架。它应该是一个哈希。
-
不清楚您要做什么。请编辑您的问题并说明清楚。在您明确您的问题之前,我的答案将被隐藏。
-
我想根据操作和日期对结果进行分组。例如,action1 在 '1/8/2014' 重复了 3 次,在 '8/8/2014' 重复了一次。和 action2 一次在 '1/8/2014' 和两次在 '2/8/2014'。
-
我们知道您希望根据操作和日期对结果进行分组。价值数字代表什么?用文字来解释,而不仅仅是举例。
-
因此您希望这些值表示存在
Event对象的次数。为什么不能这样写?
标签: ruby-on-rails ruby grouping enumerable