Я пришел с приведенным ниже решением, но я считаю, что должно быть лучше ...
array = [ 'first','middle','last'] index = array.length array.length.times { index -= 1; puts array[index]}
Руби умный
a = [ "a", "b", "c" ] a.reverse_each {|x| print x, " " }
array.reverse.each { |x| puts 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
Если вы хотите добиться того же, не используя реверс [иногда этот вопрос возникает в интервью]. Нам нужно использовать базовую логику.
вывод на экран или новый массив или использование цикла для выполнения любой логики.
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"]
В шаблоне Jade вы можете использовать:
for item in array.reverse() item