Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
私が何も入力c.messages.reverse.delete_at(0)しない場合、メッセージは配列です。入力c.messages.delete_at(0)すると、最初の要素が削除されます。なぜこれがリバースで機能しないのですか?
c.messages.reverse.delete_at(0)
c.messages.delete_at(0)
reverseこれは、最後のメンバーを削除している新しい配列を返すために発生します。元の配列を変更するを使用できます。reverse!
reverse
reverse!
配列から最後の要素を削除する場合は、を使用するのが最善の方法popです。
pop
>> arr = ["a", "b", "c"] => ["a", "b", "c"] >> arr.pop => "c" >> arr => ["a", "b"]
delete_at配列の最後から逆方向に数えて、負のインデックスを処理できます(-1は最後の要素です)。
delete_at
ar = [1,2,3,4,5] ar.delete_at(-2) p ar #=> [1, 2, 3, 5]