我正在寻找一种类似于 的方法Array#combination,但顺序很重要。
鉴于此输入:
array = ['a','b','c','d','e']
Run Code Online (Sandbox Code Playgroud)
我想得到:
[['a','b','c'],['b','c','d'],['c','d','e']]
Run Code Online (Sandbox Code Playgroud)
我正在尝试找到执行此操作的方法:
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
Run Code Online (Sandbox Code Playgroud)
Enumerable 文档是您的朋友:
array = ['a','b','c','d','e']
array.each_cons(3).to_a
# => [["a", "b", "c"], ["b", "c", "d"], ["c", "d", "e"]]
Run Code Online (Sandbox Code Playgroud)
为每个连续元素数组迭代给定块。如果没有给出块,则返回一个枚举器。
| 归档时间: |
|
| 查看次数: |
219 次 |
| 最近记录: |