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