数组的连续元素的组合

时间:2016-06-13 17:40:21

标签: ruby

是否有任何内置方法可以生成连续数组元素的组合?

a = ['1','2','3','4']
# => '12','23','34'

我尝试了permutationcombinationeach_slice方法,但无法生成所需的输出。

a.permutation(2).to_a #=> [[1,2],[1,3],[1,4],[2,1],[2,3],[2,4],[3,1],[3,2],[3,4]]
a.combination(2).to_a  #=> [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
a.each_slice(2) {|a| p a} #=> ["1", "2"],["3", "4"]

1 个答案:

答案 0 :(得分:3)

不,但你可以通过几种方法的组合来实现。

a.each_cons(2).map(&:join)
# => ["12", "23", "34"]