Rubyでは、配列やEnumerableオブジェクトの要素を特定の条件で分類してグループ化するために、`group_by`メソッドを使用できます。この記事では、`group_by`の基本的な使い方と具体例を解説します。
`group_by`の基本
`group_by`はブロックを受け取り、ブロックの戻り値ごとに要素をハッシュにまとめます。戻り値はキーがブロックの結果、値がそのキーに対応する要素の配列となります。
構文例:
hash = array.group_by { |element| 条件 }
具体例
例1: 数値を偶数・奇数でグループ化する
numbers = [1, 2, 3, 4, 5, 6]
groups = numbers.group_by { |n| n.even? }
# => {false=>[1, 3, 5], true=>[2, 4, 6]}
例2: 文字列を長さごとにグループ化する
words = ['apple', 'bat', 'car', 'banana']
groups = words.group_by { |word| word.length }
# => {5=>['apple'], 3=>['bat', 'car'], 6=>['banana']}
活用のポイント
- ブロックで返す値がハッシュのキーになる
- 値は常に配列としてまとめられる
- 複雑な条件でもブロック内で自由に計算可能
まとめ
Rubyの`group_by`を使うと、配列やEnumerableの要素を任意の条件で簡単にグループ化できます。ハッシュとして整理されるので、集計や分類処理に非常に便利です。


コメント