這是我的數組和自定義方法,用於在不使用反向方法的情況下反轉數組輸出。不知道它打破了什麼位置,試圖在控制檯中運行它,沒有骰子。ruby **不使用反向方法的反向數組
numbers = [1, 2, 3, 4, 5, 6]
def reversal(array)
do |item1, item2| item2 <=> item1
end
p reversal(numbers)
這是我的數組和自定義方法,用於在不使用反向方法的情況下反轉數組輸出。不知道它打破了什麼位置,試圖在控制檯中運行它,沒有骰子。ruby **不使用反向方法的反向數組
numbers = [1, 2, 3, 4, 5, 6]
def reversal(array)
do |item1, item2| item2 <=> item1
end
p reversal(numbers)
以下是處理此問題的一種方法。這不是非常有效,但有效。
def reversal(array)
reversed = []
loop do
reversed << array.pop
break if array.empty?
end
reversed
end
這裏是做同樣的事情另一種實現方式:
def reversal(array)
array.each_with_index.map do |value, index|
array[array.count-index-1]
end
end
很多方面......這裏有兩個。
numbers6 = [1, 2, 3, 4, 5, 6]
numbers5 = [1, 2, 3, 4, 5]
#1
def my_rev(numbers)
numbers.each_index.map { |i| numbers[-1-i] }
end
my_rev(numbers6)
#=> [6, 5, 4, 3, 2, 1]
my_rev(numbers5)
#=> [5, 4, 3, 2, 1]
#2
def my_rev(numbers)
(numbers.size/2).times.with_object(numbers.dup) { |i,a| a[i],a[-1-i]=a[-1-i],a[i] }
end
my_rev(numbers6)
#=> [6, 5, 4, 3, 2, 1]
my_rev(numbers5)
#=> [5, 4, 3, 2, 1]
纔可以考慮 「破」,它必須一直處於工作狀態,第一。你明白'<=>'是做什麼的嗎? – Makoto
我不確定,是不是顛倒了2個物體的順序? –
[** No。**](https://docs.ruby-lang.org/zh/2.3.0/Array.html#method-i-3C-3D-3E)非常多***沒有** *。 – Makoto