1

私が何も入力c.messages.reverse.delete_at(0)しない場合、メッセージは配列です。入力c.messages.delete_at(0)すると、最初の要素が削除されます。なぜこれがリバースで機能しないのですか?

4

2 に答える 2

3

reverseこれは、最後のメンバーを削除している新しい配列を返すために発生します。元の配列を変更するを使用できます。reverse!

配列から最後の要素を削除する場合は、を使用するのが最善の方法popです。

>> arr = ["a", "b", "c"]
=> ["a", "b", "c"]
>> arr.pop
=> "c"
>> arr
=> ["a", "b"]
于 2012-05-25T10:43:51.787 に答える
2

delete_at配列の最後から逆方向に数えて、負のインデックスを処理できます(-1は最後の要素です)。

ar = [1,2,3,4,5]
ar.delete_at(-2)
p ar #=> [1, 2, 3, 5]
于 2012-05-25T15:18:58.580 に答える