ruby – 如何合并数组中的连续重复元素?

前端之家收集整理的这篇文章主要介绍了ruby – 如何合并数组中的连续重复元素?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要合并一个数组中的连续重复元素
[1,2,3,1]

[1,1]

#uniq不能用于此目的.为什么?因为#uniq会产生这个:

[1,3]

解决方法

def remove_consecutive_duplicates(xs)
  [xs.first] + xs.each_cons(2).select do |x,y|
    x != y
  end.map(&:last)
end

remove_consecutive_duplicates([1,1])
#=> [1,1]

这将返回一个像uniq一样的新数组,并在O(n)时间内工作.

原文链接:https://www.f2er.com/ruby/274187.html

猜你在找的Ruby相关文章