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] }
Может ли кто-нибудь придумать что-то менее уродливое?