什么是迭代数组的'Ruby方式' - 从数组[n]到数组[n-1]?

时间:2010-09-08 22:52:40

标签: ruby arrays iteration

假设我有一个size数组5.我想取一个索引(从0到4)作为输入,并从提供的索引开始遍历数组。

例如,如果给出的索引是3,我想像这样迭代:

arr[3]
arr[4]
arr[0]
arr[1]
arr[2]

我可以想到很多方法可以做到这一点 - 但 Ruby方式是做什么的?

3 个答案:

答案 0 :(得分:14)

您可以使用版本1.9.2中的Array#rotate

 [4,3,6,7,8].rotate(2).each{|i|print i}

 67843

答案 1 :(得分:1)

我应该想象有很多方法可以用红宝石做到。不确定 ruby​​方式是做什么的。也许:

arr.size.times do |i|
  puts arr.at((3 + i).modulo(arr.size))
end

答案 2 :(得分:0)

鉴于您的索引是i:

(arr.from(i) + arr[0,i]).each