【问题标题】:What's the 'Ruby way' to iterate over an array - from array[n] to array[n - 1]?遍历数组的“Ruby方式”是什么——从数组[n]到数组[n-1]?
【发布时间】:2011-04-10 00:10:09
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ruby arrays iteration


    【解决方案1】:

    您可以从版本 1.9.2 开始使用Array#rotate

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

    【讨论】:

    • 嘿,我知道会有一个很好的方法来做到这一点 :) 不敢相信我也错过了 1.9.2 的发布!!
    【解决方案2】:

    我可以想象在 ruby​​ 中有很多方法可以做到这一点。不确定 ruby​​ 方法是什么。也许:

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

    【讨论】:

    • 我不认为,使用索引是 Ruby 方式。
    • 很公平,我的意思是有很多方法可以做到这一点,而不是有可能提供明确的答案。
    【解决方案3】:

    鉴于您的索引是 i:

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

    【讨论】:

      猜你喜欢
      • 2011-04-04
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      相关资源
      最近更新 更多