Rubyリファレンス: Home

group_by (Enumerable)

Edit   History

Ruby 1.8.7 Ruby 1.9

標準クラス・モジュール > Array > group_by

enum.group_by {|item| block }

group_byメソッドは、要素をグループ分けします。ブロック引数itemに各要素を入れながら、要素の数だけブロックを繰り返し、ブロックの戻り値が同じ要素をそれぞれ集めます。メソッドの戻り値は{ ブロックの戻り値 => [要素, 要素, ...], ... }というハッシュになります。

次の例は、文字列の先頭のアルファベット別に要素をグループ分けします。

animals = ["cat", "bat", "bear", "camel", "alpaca"]
p animals.group_by {|item| item[0].chr }
{"a"=>["alpaca"], "b"=>["bat", "bear"], "c"=>["cat", "camel"]}

関連項目