配列の和と積

和(|)や積(&)を使うと、重複要素を簡単に削除できますね。

a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8]
p a         #=> [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8]
a |= a
p a         #=> [3, 1, 4, 5, 9, 2, 6, 8]

b = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8]
p b         #=> [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8]
b &= b
p b         #=> [3, 1, 4, 5, 9, 2, 6, 8]

でも、uniqメソッドのほうが自然。

a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8]
p a         #=> [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8]
p a.uniq    #=> [3, 1, 4, 5, 9, 2, 6, 8]

uniq!メソッドは破壊的メソッド。

a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8]
p a         #=> [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8]
a.uniq!
p a         #=> [3, 1, 4, 5, 9, 2, 6, 8]