Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Arrayクラス > keep_if

instance method Array#keep_if

keep_if {|item| ... } -> self[permalink][rdoc]
keep_if -> Enumerator

ブロックが false を返した要素を削除します。

a = %w{ a b c d e f }
a.keep_if {|v| v =~ /[aeiou]/}   # => ["a", "e"]
a # => ["a", "e"]

Array#select! と同様に自身を上書きしますが、削除する要素がなかっ た場合には修正を行いません。

a = %w{ a b c d e f }
a.keep_if {|v| v =~ /[a-z]/ }   # => ["a", "b", "c", "d", "e", "f"]
a # => ["a", "b", "c", "d", "e", "f"]

ブロックが与えられなかった場合は、自身と keep_if から生成した Enumerator オブジェクトを返します。

[SEE_ALSO] Array#select!