如何从最后一个元素开始遍历数组? (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. 数组可以通过索引访问
  2. 将索引设置为数组的长度,然后减1,直到索引达到0
  3. 输出到屏幕或新的数组或使用循环执行任何逻辑。

      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"]