Удалить соседние идентичные элементы в Ruby Array?
Ruby 1.8.6
У меня есть массив, содержащий числовые значения. Я хочу уменьшить его так, чтобы последовательности одного и того же значения сводились к одному экземпляру этого значения.
Я хочу
a = [1, 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 2, 3, 3, 3]
уменьшить до
[1, 2, 3, 2, 3]
Как вы видете,Array#uniq
не будет работать в этом случае.
У меня есть следующее, которое работает:
(a.size - 1).downto(1) { |i| a[i] = nil if a[i - 1] == a[i] }
Кто-нибудь может придумать что-нибудь менее уродливое?