Подтвердить что ты не робот

Как выполнить итерацию массива, начиная с последнего элемента? (Рубин)

Я пришел с решением ниже, но я считаю, что он должен быть более приятным...

array = [ 'first','middle','last']

index = array.length
array.length.times { index -= 1; puts array[index]}
4b9b3361

Ответ 1

array.reverse.each { |x| puts x }

Ответ 2

Ruby умный

a = [ "a", "b", "c" ]
a.reverse_each {|x| print x, " " }

Ответ 3

Вы даже можете использовать цикл for

array = [ 'first','middle','last']
for each in array.reverse do
   print array
end

напечатает

last
middle
first

Ответ 4

Если вы хотите итерации по диапазону в обратном порядке, используйте:

(0..5).reverse_each do |i|
  # do something
end

Ответ 5

В шаблоне нефрита вы можете использовать:

for item in array.reverse()
   item

Ответ 6

Если вы хотите достичь того же, не используя обратное [Иногда этот вопрос приходит в интервью]. Нам нужно использовать базовую логику.

  • Массив
  • можно получить через индекс
  • установите индекс в длину массива, а затем уменьшится на 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"]