简单的红宝石数组拆分

时间:2019-01-17 18:22:13

标签: ruby

我想通过以下方式拆分数组:

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

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

#each_slice#combination接近我想要的,但不太接近。
如何像示例中那样拆分数组?

2 个答案:

答案 0 :(得分:6)

[1,2,3,4,5].each_cons(3).to_a
#=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]

检查文档中的each_cons

答案 1 :(得分:1)

只是为了好玩:

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]]