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
In case you want to iterate through a range in reverse then use:
(0..5).reverse_each do |i|
# do something
end
If you want to achieve the same without using reverse [Sometimes this question comes in interviews]. We need to use basic logic.
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"]
array.reverse.each { |x| puts x }
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
In a jade template you can use:
for item in array.reverse()
item
Ruby is smart
a = [ "a", "b", "c" ]
a.reverse_each {|x| print x, " " }