How to iterate through an array starting from the last element? (Ruby)

后端 未结 6 1918
别那么骄傲
别那么骄傲 2020-12-30 19:08

I came with below solution but I believe that must be nicer one out there ...

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

index = array.length
array.length.t         


        
相关标签:
6条回答
  • 2020-12-30 19:34

    In case you want to iterate through a range in reverse then use:

    (0..5).reverse_each do |i|
      # do something
    end
    
    0 讨论(0)
  • 2020-12-30 19:37

    If you want to achieve the same without using reverse [Sometimes this question comes in interviews]. We need to use basic logic.

    1. array can be accessed through index
    2. set the index to length of array and then decrements by 1 until index reaches 0
    3. output to screen or a new array or use the loop to perform any logic.

          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"]
      
    0 讨论(0)
  • 2020-12-30 19:39
    array.reverse.each { |x| puts x }
    
    0 讨论(0)
  • 2020-12-30 19:39

    You can even use a for loop

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

    will print

    last
    middle
    first
    
    0 讨论(0)
  • 2020-12-30 19:40

    In a jade template you can use:

    for item in array.reverse()
       item
    
    0 讨论(0)
  • 2020-12-30 19:44

    Ruby is smart

    a = [ "a", "b", "c" ]
    a.reverse_each {|x| print x, " " }
    
    0 讨论(0)
提交回复
热议问题