简单ruby数组拆分

简单ruby数组拆分,ruby,Ruby,我想按以下方式拆分阵列: current_arr = [1,2,3,4,5] new_arr = [[1,2,3], [2,3,4], [3,4,5]] #每个(u)片和#组合都很接近我想要的,但并不完全如此。 如何像示例中那样拆分数组 [1,2,3,4,5].each_cons(3).to_a #=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]] 查看文档。只是为了好玩: ary = [1,2,3,4,5] n = 3 (ary.size - n + 1).

我想按以下方式拆分阵列:

current_arr = [1,2,3,4,5]

new_arr = [[1,2,3], [2,3,4], [3,4,5]]
#每个(u)片
#组合
都很接近我想要的,但并不完全如此。
如何像示例中那样拆分数组

[1,2,3,4,5].each_cons(3).to_a
#=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
查看文档。

只是为了好玩:

ary = [1,2,3,4,5]

n = 3
(ary.size - n + 1).times.each_with_object([]) { |_, a|  a << ary.first(n); ary.rotate! }

#=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
ari=[1,2,3,4,5]
n=3
(ary.size-n+1).次.每个_与_对象([]){| |,a | a[[1,2,3],[2,3,4],[3,4,5]]

为什么要匆忙选择答案。你不想看到其他答案吗?问题不清楚。有不同的逻辑(如果参数更改,将导致不同的结果)来创建您想要的输出。@tadman:这是真的。我现在正在做一些Go,但我错过了Enumerable:)因此我想将Enumerable移植到所有内容。@tadman,没有Enumerable,Enumerable将是一个没有Enumerator的汉堡。后者最值得我们赞扬。是吗?