Je suis venu avec la solution ci-dessous mais je crois que ça doit être plus joli là-bas ...
array = [ 'first','middle','last']
index = array.length
array.length.times { index -= 1; puts array[index]}
array.reverse.each { |x| puts x }
Ruby est intelligent
a = [ "a", "b", "c" ]
a.reverse_each {|x| print x, " " }
Vous pouvez même utiliser une boucle for
array = [ 'first','middle','last']
for each in array.reverse do
print array
end
imprimera
last
middle
first
Si vous souhaitez parcourir une plage en sens inverse, utilisez:
(0..5).reverse_each do |i|
# do something
end
Si vous voulez obtenir le même résultat sans utiliser l'inverse [Parfois, cette question est posée dans des entretiens]. Nous devons utiliser une logique de base.
sortie vers screen ou un nouveau tableau ou utilisez la boucle pour exécuter toute logique.
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"]
Dans un modèle de jade, vous pouvez utiliser:
for item in array.reverse()
item