如何在Ruby中的重复元素上拆分数组

kst*_*tis 2 ruby arrays

假设一个数组可以有连续的重复元素,我正在寻找一种方法来转换这个数组:

['A', 'B', 'C', 'C', 'D', 'D', 'F']
Run Code Online (Sandbox Code Playgroud)

进入这个:

[['A', 'B', 'C'], ['C', 'D'], ['D','F']]
Run Code Online (Sandbox Code Playgroud)

请注意,对于我的特殊情况,数组的连续重复元素不得超过 2 个。

ste*_*lag 11

Enumerable#slice_when这样做。

arr = ['A', 'B', 'C', 'C', 'D', 'D', 'F']
p arr.slice_when{|a,b| a==b}.to_a

# =>[["A", "B", "C"], ["C", "D"], ["D", "F"]]
Run Code Online (Sandbox Code Playgroud)