Ruby 1.8.6Xóa các phần tử giống nhau lân cận trong một mảng Ruby?
Tôi có một mảng chứa các giá trị số. Tôi muốn giảm nó sao cho các dãy của cùng một giá trị được giảm xuống một giá trị duy nhất của giá trị đó.
Vì vậy, tôi muốn
a = [1, 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 2, 3, 3, 3]
để giảm đến
[1, 2, 3, 2, 3]
Như bạn thấy, Array#uniq
sẽ không làm việc trong trường hợp này.
Tôi có những điều sau đây, trong đó hoạt động:
(a.size - 1).downto(1) { |i| a[i] = nil if a[i - 1] == a[i] }
bất cứ ai có thể đến với cái gì ít xấu xí?
Tôi vừa thử điều này - tuyệt vời. Cảm ơn! –
Bạn không cần x.first, bạn chỉ cần nói.map (&: first) – Darkmouse
@DarkMouse Bạn đã làm trong 1.8.6 :-) thực sự. Điều này có liên quan 4 năm trước, nhưng không nhiều ngày hôm nay. Tôi đã cập nhật câu trả lời của tôi –