Ruby Rails:对数组进行多次迭代
我有一个数组,假设它是Ruby Rails:对数组进行多次迭代,ruby,Ruby,我有一个数组,假设它是 array = ["apple", "orange", "banana"] 我还有一个循环: boxes.each_with_index do |fruit, i| ... some code ... array[i] end 我不知道有多少盒子。我想要实现的是迭代数组(从“apple”到“orange”)所需的次数:apple、orange、banana、apple。。。一次又一次 我找不到一种方法可以帮助我做到这一点。此外,我曾考虑在循环中重置计数器,但也
array = ["apple", "orange", "banana"]
我还有一个循环:
boxes.each_with_index do |fruit, i|
... some code ...
array[i]
end
我不知道有多少盒子。我想要实现的是迭代数组(从“apple”到“orange”)所需的次数:apple、orange、banana、apple。。。一次又一次
我找不到一种方法可以帮助我做到这一点。此外,我曾考虑在循环中重置计数器,但也没有成功
你认为最优雅的解决方案是什么?
谢谢
然后,您可以随时调用array\u枚举器。它是循环的
有关#循环方法,请参阅ruby官方文档:
然后,您可以随时调用array\u枚举器。它是循环的
参见ruby官方文档中的#cycle方法:我同意@Ursus的观点,cycle
在这里可能是最好的,但您也可以使用:
我同意@Ursus的观点,即cycle
在这里可能是最好的,但您也可以使用:
这是一个纯粹的Ruby问题,因此我建议您在标题中删除“Rails”,并删除“RubyonRails”标记。Rails标签浪费了只想看到Rails问题的成员(即,在Rails上过滤的成员)的时间,并阻止过滤掉Rails问题的成员看到您的问题。另外,我不认为“数组”或“循环”是有用的标记。这是一个纯粹的ruby问题,所以我建议你在标题中划掉“Rails”,去掉“RubyonRails”标签。Rails标签浪费了只想看到Rails问题的成员(即,在Rails上过滤的成员)的时间,并阻止过滤掉Rails问题的成员看到您的问题。另外,我不认为“数组”或“循环”是有用的标记。我只要“红宝石”。
array_enumerator = array.cycle
arr = [1,2,3]
a = arr.dup.rotate!(-1) #=> [3, 1, 2]
a.rotate!.first #=> 1
a.rotate!.first #=> 2
a.rotate!.first #=> 3
a.rotate!.first #=> 1