Code Fix

中級each で配列を回しながら delete すると要素が飛ばされる › パターン5

each で配列を回しながら delete すると要素が飛ばされる

eachで配列を反復しながらdelete_atやdeleteで要素を取り除くと、後続の要素が前に詰まってインデックスがずれ、次に処理されるはずだった要素が読み飛ばされます。

 1  queue = [2, 6, 4, 1, 8, 9]
 2  _________.each do |n|
        ^
 3    queue.delete(n) if n.even?
 4  end
 5  puts queue.inspect
出力: [6, 1, 9]

空欄を埋めて実行を通す

広告
広告スロット(未設定)

each で配列を回しながら delete すると要素が飛ばされる

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)