Rubyで配列をグループ化する方法: `group_by`の使い方

Ruby

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の要素を任意の条件で簡単にグループ化できます。ハッシュとして整理されるので、集計や分類処理に非常に便利です。

コメント

タイトルとURLをコピーしました