配列の和と積
和(|)や積(&)を使うと、重複要素を簡単に削除できますね。
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]