【发布时间】:2018-10-29 18:10:56
【问题描述】:
给定数组:
arr = ['a','a','b','b','b','a','c']
在 Ruby 中是否有一种快速的方法可以删除重复的连续元素,但并非所有重复的元素都像 arr.uniq 一样?预期的输出是:
['a','b','a','c']
这是我尝试过的。可以按如下方式遍历 Array,但是在 Ruby 中最简洁的方法是什么?
def remove_repeats arr
new_arr = []
last_element = nil
arr.each do |x|
if last_element != x
new_arr << x
end
last_element = x
end
new_arr
end
arr = ['a','a','b','b','b','a','c','c']
puts remove_repeats(arr).join(',')
# => a,b,a,c
【问题讨论】:
-
这可能是重复的,我正在寻找如何专门对Array类进行操作。另一个问题涉及更具体的术语列表,我猜我也可以搜索。另一个问题几乎不使用术语 Array(仅在少数 cmets 中),它是实际使用的类。这也是我使用 Array(大写)的原因,它是一个类。