如何迭代连续的元素
问题描述:
我正在寻找一种类似于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
答
可枚举文档是你的朋友:
array = ['a','b','c','d','e']
array.each_cons(3).to_a
# => [["a", "b", "c"], ["b", "c", "d"], ["c", "d", "e"]]
迭代连续元件的每个阵列的给定的块。如果没有给出块,则返回一个枚举器。
+0
啊我看到我只看着Array –
您是否阅读过Array和Enumerable文档? –
我只看了Arrray –