相关疑难解决方法(0)

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

我需要合并一个数组中的连续重复元素

[1, 2, 2, 3, 1]
Run Code Online (Sandbox Code Playgroud)

[1, 2, 3, 1]
Run Code Online (Sandbox Code Playgroud)

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

[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

ruby

7
推荐指数
2
解决办法
1404
查看次数

如何从 Ruby Array 中删除重复的连续元素,但不是所有重复的元素?

鉴于数组:

arr = ['a','a','b','b','b','a','c']
Run Code Online (Sandbox Code Playgroud)

Ruby 中是否有一种快速方法可以删除重复的连续元素,但并非所有重复元素(如 arr.uniq)都会删除?预期输出将是:

['a','b','a','c']
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的。可以按如下方式遍历 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
Run Code Online (Sandbox Code Playgroud)

ruby arrays

1
推荐指数
1
解决办法
236
查看次数

标签 统计

ruby ×2

arrays ×1