Rubyリファレンス: Home

uniq, uniq! (Array)

Edit   History

標準クラス・モジュール > Array > uniq, uniq!

array.uniq

uniqメソッドは、配列の中で重複する要素を削除した新しい配列を返します。

arr = [1, 2, 5, 5, 1, 3, 1, 2, 4, 3]
p arr.uniq
[1, 2, 5, 3, 4]
array.uniq {|item| block }

Ruby 1.9.2 Ruby 1.9.2では、uniqメソッドにブロックを渡すと、ブロックの戻り値が重複したときに要素を削除します。ブロック引数itemには配列の各要素が入ります。

animals = ["Cat", "dog", "cat", "mouse", "Dog"]
p animals.uniq {|name| name.downcase }
["Cat", "dog", "mouse"]
array.uniq!

uniq!メソッドは、配列の中で重複する要素を削除します。レシーバ自身を変更するメソッドです。戻り値は、変更があったときはレシーバ自身、なかったときはnilです。

arr = [1, 2, 5, 5, 1, 3, 1, 2, 4, 3]
arr.uniq!
p arr
[1, 2, 5, 3, 4]
array.uniq! {|item| block }

Ruby 1.9.2 Ruby 1.9.2では、uniq!メソッドにブロックを渡すと、ブロックの戻り値が重複したときに要素を削除します。ブロック引数itemには配列の各要素が入ります。

animals = ["Cat", "dog", "cat", "mouse", "Dog"]
animals.uniq! {|name| name.downcase }
p animals
["Cat", "dog", "mouse"]

関連項目