始めに
RubyでHashのkey,Valueの組み合わせをグループ化してみます
やりたいこと
[{"test"=>"1"},{"test"=>"1"},{"test1"=>"2"}]
を
のようにグループ化したい
{"test"=>["1", "1"]}
{"test1"=>["2"]}
実装
groupbytest.rb
p = [{"test"=>"1"},{"test"=>"1"},{"test1"=>"2"}]
.group_by do |name|
name.keys[0]
end
.collect do |k,v|
{k=>v.collect{|h|h.values[0]}}
end
puts p
雑感
同じようなことを
Listに含まれる単語の数をカウントするプログラム
の記事でJavaで実装したけれど、
JavaのCollectors.groupingByのような第二引数にグループ化のロジックが書けるメソッドがRubyにあればもっとシンプルロジックは書けるのだけど