的多个GROUP_BY我有一个这样的阵列:红宝石阵列
[{:a=>"2017-01-01", :b=>"2", :c=>"1"}, {:a=>"2017-01-01", :b=>"2", :c=>"2"}, {:a=>"2017-01-02", :b=>"5", :c=>"1"}]
如果,例如,I组与键阵列 “:A”,其结果是:
p = y.group_by { |g| g[:a]}
=> {"2017-01-01"=>[{:a=>"2017-01-01", :b=>"2", :c=>"1"}, {:a=>"2017-01-01", :b=>"2", :c=>"2"}], "2017-01-02"=>[{:a=>"2017-01-02", :b=>"5", :c=>"1"}]}
现在我想分组为每个“:一个”的关键“:b”像:
=> {"2017-01-01"=>["2" => [{:a => "2017-01-01", :b => "2", :c => "1" }], ... }
我该怎么办?提前致谢。
编辑:
多个组由... 1°GROUP_BY一个,2°GROUP_BY B的1°的结果,等等。
y.group_by {|g| g[:a]}.map do |k,v|
[
k, v.group_by { |d| d[:b] }.map do |p,q|
[p, q.group_by { |f| f[:c] }]
end.to_h
]
end.to_h
1.'[:a => ...'不是有效的Ruby对象。请编辑更正。 2.“......”代表什么并不明显。请将所有'...'替换为您希望用作示例输出的值。 3.当你给一个例子(通常)给每个输入对象分配一个变量(例如'arr = [{:a => ... ...'),以便读者可以在答案中引用这些变量(这里只是一个)评论而不必定义它们。 –