web-dev-qa-db-ja.com

最後の要素から始まる配列を反復する方法は? (ルビー)

私は以下の解決策が付属していましたが、それはそこにもっと良いものであるに違いないと思います...

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

index = array.length
array.length.times { index -= 1; puts array[index]}
40
Radek
array.reverse.each { |x| puts x }
54
ennuikiller

Rubyは賢い

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

Forループを使用することもできます

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

印刷します

last
middle
first
4
bakerstreet221b

逆に範囲を反復処理したい場合は、次を使用します:

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

リバースを使用せずに同じことを達成したい場合[この質問はインタビューで行われる場合があります]。基本的なロジックを使用する必要があります。

  1. 配列はインデックスを介してアクセスできます
  2. インデックスを配列の長さに設定し、インデックスが0になるまで1ずつデクリメントします
  3. 画面または新しい配列に出力するか、ループを使用してロジックを実行します。

        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"]
    
1
Mendy

ヒスイのテンプレートでは、次のものを使用できます。

for item in array.reverse()
   item
0
lidox