「group_by」メソッドは、配列やハッシュの要素を指定したブロックに基づいてグループ化します。以下に、使用例をいくつか示します。
- 配列の要素をグループ化する例:
fruits = ["apple", "banana", "orange", "grape", "kiwi"]
grouped_fruits = fruits.group_by { |fruit| fruit.length }
# 結果:
# {
# 5 => ["apple"],
# 6 => ["banana", "orange"],
# 5 => ["grape"],
# 4 => ["kiwi"]
# }
上記の例では、果物の名前の長さに基づいて要素がグループ化されます。グループ化された結果は、要素の長さをキーとし、それに対応する要素の配列を値とするハッシュとして返されます。
- ハッシュの要素をグループ化する例:
person_data = {
{ name: "John", age: 25 },
{ name: "Jane", age: 30 },
{ name: "David", age: 25 },
{ name: "Emily", age: 30 }
}
grouped_persons = person_data.group_by { |person| person[:age] }
# 結果:
# {
# 25 => [
# { name: "John", age: 25 },
# { name: "David", age: 25 }
# ],
# 30 => [
# { name: "Jane", age: 30 },
# { name: "Emily", age: 30 }
# ]
# }
上記の例では、個人のデータを年齢に基づいてグループ化しています。グループ化された結果は、年齢をキーとし、それに対応する個人データの配列を値とするハッシュとして返されます。
これらは、Rubyで要素をグループ化するためのシンプルで簡単な方法の一部です。他にもさまざまな方法がありますので、必要に応じてドキュメントやリファレンスを参照してください。