小编sir*_*987的帖子

Ruby多个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"}]
Run Code Online (Sandbox Code Playgroud)

例如,如果我使用键":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"}]} 
Run Code Online (Sandbox Code Playgroud)

现在我想分组为每个":a"键":b"如:

 => {"2017-01-01"=>["2" => [{:a => "2017-01-01", :b => "2", :c => "1" }], ... }
Run Code Online (Sandbox Code Playgroud)

我能怎么做?提前致谢.

编辑:

多组由... 1°group_by a,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  
Run Code Online (Sandbox Code Playgroud)

ruby hash

3
推荐指数
1
解决办法
1258
查看次数

标签 统计

hash ×1

ruby ×1