uniq -> Array
[permalink][rdoc]uniq! -> self | nil
uniq {|item| ... } -> Array
uniq! {|item| ... } -> self | nil
uniq は配列から重複した要素を取り除いた新しい配列を返します。 uniq! は削除を破壊的に行い、削除が行われた場合は 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, "2", "3"].uniq # => [1, 3, 2, "2", "3"] p [1, 3, 2, "2", "3"].uniq { |n| n.to_s } # => [1, 3, 2]
要素を先頭から辿っていき、最初に出現したものが残ります。