循环遍历Ruby中的数组

时间:2015-10-15 14:11:25

标签: ruby-on-rails ruby

我有一个[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方法的数组,但它没有给出预期的结果。

2 个答案:

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