Ruby 4.1 リファレンスマニュアル

instance method Array#uniq!

uniq! -> self | nil[permalink][rdoc][edit]
uniq! {|item| ... } -> self | nil
() → self?
() { (Elem) → untyped } → self?

配列から重複した要素を破壊的に取り除きます。削除が行われた場合は self を、そうでなければnil を返します。

取り除かれた要素の部分は前に詰められます。要素の重複判定は、Object#eql? により行われます。

p [1, 1, 1].uniq!        # => [1]
p [1, 4, 1].uniq!        # => [1, 4]
p [1, 3, 2, 2, 3].uniq!  # => [1, 3, 2]
p [1, 3, 2].uniq!        # => nil

ブロックが与えられた場合、ブロックが返した値が重複した要素を取り除きます。

p [1, 3, 2, "2", "3"].uniq!                # => nil
p [1, 3, 2, "2", "3"].uniq! { |n| n.to_s } # => [1, 3, 2]

要素を先頭から辿っていき、最初に出現したものが残ります。

[SEE_ALSO] Array#uniq