Ответ 1
array.reverse.each { |x| puts x }
Я пришел с решением ниже, но я считаю, что он должен быть более приятным...
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
Если вы хотите достичь того же, не используя обратное [Иногда этот вопрос приходит в интервью]. Нам нужно использовать базовую логику.
вывод на экран или новый массив или использование цикла для выполнения любой логики.
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"]