Rubyで配列を扱う際、同じ要素が複数含まれている場合があります。重複した要素を簡単に削除する方法として、Rubyでは uniq メソッドが用意されています。本記事では、uniqメソッドの基本的な使い方と応用例を解説します。
uniqメソッドの基本
配列に対して uniq を呼び出すと、重複した要素が削除され、新しい配列が返されます。元の配列は変更されません。
例。
arr = [1, 2, 2, 3, 3, 3]
unique_arr = arr.uniq
puts unique_arr.inspect # 出力: [1, 2, 3]
uniq!メソッドで配列を直接変更
元の配列自体を変更したい場合は uniq! を使用します。このメソッドは重複が削除され、配列が直接更新されます。
例。
arr = [1, 2, 2, 3, 3]
arr.uniq!
puts arr.inspect # 出力: [1, 2, 3]
ブロック付きuniqの応用
オブジェクト配列や複雑な条件で重複を判断したい場合、ブロックを渡すことも可能です。ブロックの戻り値が重複判定に使用されます。
例。
users = [{name: 'Alice', age: 20}, {name: 'Bob', age: 20}, {name: 'Alice', age: 22}]
unique_users = users.uniq { |u| u[:name] }
puts unique_users.inspect # AliceとBobだけ残る
まとめ
Rubyで配列の重複要素を削除するには、uniq または uniq! メソッドを使用します。基本的な使い方からブロック付きでの応用まで覚えることで、配列操作を効率よく行うことができます。

コメント