まくまくRubyノート
条件を満たす要素を削除する
2011-11-04

条件を指定して配列内の要素を削除するには、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}
2011-11-04