重複した要素の削除
配列から重複した要素を削除するには、配列のuniq
メソッドを利用します。
次の例では、arr配列から重複した「1」という要素が削除された配列が返され、uniq_arr配列にセットされます。
arr = [1, 2, 3, 1]
uniq_arr = arr.uniq
メソッドを呼んだ配列自体を変更させたい場合は、uniq
の代わりにuniq!
メソッドを利用します。
uniq!
の場合、削除が行われた場合は自身self
を、行われなかった場合はnil
を返します。
arr = [1, 2, 3, 1]
arr.uniq
また、重複したオブジェクトを削除したい場合は、ブロックを利用します。
次の例では、users配列に含まれるuserオブジェクトの中でid
属性が同じものを削除しています。
users.uniq { |u| u.id }