如何迭代连续的元素

问题描述:

我正在寻找一种类似于Array#combination的方法,但顺序很重要。如何迭代连续的元素

鉴于此输入:

array = ['a','b','c','d','e'] 

我想获得:

[['a','b','c'],['b','c','d'],['c','d','e']] 

我试图找到做这个的方法:

array = ['a','b','c','d','e'] 
x,a = 3,[] 

until x > (ary.size) do 
    a += (0.upto(ary.size - x).map{|i| ary[i..(x-1)+i]}) 
    x += 1 
end 
+0

您是否阅读过Array和Enumerable文档? –

+0

我只看了Arrray –

可枚举文档是你的朋友:

array = ['a','b','c','d','e'] 
array.each_cons(3).to_a 
# => [["a", "b", "c"], ["b", "c", "d"], ["c", "d", "e"]] 

each_cons(n) { ... }

迭代连续元件的每个阵列的给定的块。如果没有给出块,则返回一个枚举器。

+0

啊我看到我只看着Array –