什么是“Ruby 方式”?迭代数组 - 从 array[n] 到 array[n - 1]?

发布于 2024-09-18 21:00:50 字数 218 浏览 6 评论 0原文

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

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

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

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

Say I have an array of size 5. I want to take an index (from 0-4) as input, and iterate through the array, starting at the supplied index.

For example, if the index given was 3, I want to iterate like so:

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

I can think of plenty of ways to do this - but what's the Ruby way to do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

时光磨忆 2024-09-25 21:00:50

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

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

 67843

You can use Array#rotate from version 1.9.2

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

 67843
温柔一刀 2024-09-25 21:00:50

我想在 ruby​​ 中有很多方法可以做到这一点。不知道 ruby​​ 的方式是什么。或许:

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

There's plenty of ways to do it in ruby I should imagine. Not sure what the ruby way to do it. Maybe:

arr.size.times do |i|
  puts arr.at((3 + i).modulo(arr.size))
end
伪装你 2024-09-25 21:00:50

鉴于您的索引是 i:

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

Given your index is i:

(arr.from(i) + arr[0,i]).each
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文