我想通过以下方式拆分数组:
current_arr = [1,2,3,4,5]
new_arr = [[1,2,3], [2,3,4], [3,4,5]]
#each_slice
和#combination
接近我想要的,但不太接近。
如何像示例中那样拆分数组?
答案 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]]