如何从最后一个元素开始遍历数组? (ruby)
我带着下面的解决scheme来,但是我相信那里肯定更好。
array = [ 'first','middle','last'] index = array.length array.length.times { index -= 1; puts array[index]}
array.reverse.each { |x| puts x }
Ruby很聪明
a = [ "a", "b", "c" ] a.reverse_each {|x| print x, " " }
你甚至可以使用for循环
array = [ 'first','middle','last'] for each in array.reverse do print array end
将打印
last middle first
如果你想通过反向的范围迭代,然后使用:
(0..5).reverse_each do |i| # do something end
在玉石模板中,您可以使用:
for item in array.reverse() item
如果你想在不使用反向的情况下达到同样的效果[有时候这个问题会在面试中出现]。 我们需要使用基本的逻辑。
- 数组可以通过索引访问
- 将索引设置为数组的长度,然后减1,直到索引达到0
-
输出到屏幕或新的数组或使用循环执行任何逻辑。
def reverseArray(input) output = [] index = input.length - 1 #since 0 based index and iterating from last to first loop do output << input[index] index -= 1 break if index < 0 end output end array = ["first","middle","last"] reverseArray array #outputs: ["last","middle","first"]