Ruby 4.1 リファレンスマニュアル

instance method Array#reject!

reject! {|x| ... } -> self | nil[permalink][rdoc][edit]
reject! -> Enumerator
() { (Elem item) → boolish } → self?
() → ::Enumerator[Elem, self?]

要素を順番にブロックに渡して評価し、その結果が真になった要素をすべて削除します。要素が 1 つ以上削除されれば self を、1 つも削除されなければ nil を返します。

ブロックが与えられなかった場合は、自身と reject! から生成した Enumerator オブジェクトを返します。返された Enumerator オブジェクトの each メソッドには、もとの配列に対して副作用があることに注意してください。

a = [0, 1, 2, 3, 4, 5]
p a.reject!{|x| x % 2 == 0}  # => [1, 3, 5]
p a.reject!{|x| x % 2 == 0}  # => nil

a = [0, 1, 2, 3, 4, 5]
e = a.reject!
e.each{|i| i % 2 == 0}
p a                    # => [1, 3, 5]  もとの配列から削除されていることに注意。

[SEE_ALSO] Array#delete_if, Array#select!, Array#keep_if