条件を指定して配列内の要素を削除するには、Array
クラスの下記のようなメソッドを使用します。
Array#delete_if {|x| ...} # 元の配列が変更される
Array#reject {|x| ...} # 元の配列は変更されない
arr = (1..10).to_a # => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
arr.delete_if {|x| x % 2 == 0}
p arr # => [1, 3, 5, 7, 9]
delete_if
は、もとの配列が変更されていることに注意してください。
もとの配列をキープして、変更後の配列を新しく作成したい場合は reject
が使用できます。
new_arr = arr.reject {|x| x % 2 == 0}