2015-10-15 149 views
3

我有一個[1,2,3,4,5]形式的數組。通過Ruby中的數組循環遍歷

是否有可能循環遍歷此數組,並在每次迭代過程中得到一個數組,其中起點是當前元素,終點是之前的元素?

[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方法嘗試,但它不給出預期的結果。

回答

6

退房rotate

a = [ "a", "b", "c", "d" ] 
a.rotate   #=> ["b", "c", "d", "a"] 
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]]