我有一个[1,2,3,4,5]形式的数组。
是否可以循环遍历此数组并在每次迭代期间获取一个数组,其中起点是当前元素,终点是之前的元素?
像
[1,2,3,4,5]
[2,3,4,5,1]
[3,4,5,1,2]
[4,5,1,2,3]
[5,1,2,3,4]
我正在尝试使用.cycle方法的数组,但它没有给出预期的结果。
答案 0 :(得分:6)
查看rotate。
a = [ "a", "b", "c", "d" ]
a.rotate #=> ["b", "c", "d", "a"]
答案 1 :(得分:5)
irb(main):005:0> array = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
irb(main):006:0> array.size.times.map{|i| array.rotate(i)}
=> [[1, 2, 3, 4, 5], [2, 3, 4, 5, 1], [3, 4, 5, 1, 2], [4, 5, 1, 2, 3], [5, 1, 2 , 3, 4]]