Ruby 2.6.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Hashクラス > delete_if

instance method Hash#delete_if

delete_if -> Enumerator[permalink][rdoc]
reject! -> Enumerator
delete_if {|key, value| ... } -> self
reject! {|key, value| ... } -> self|nil

キーと値を引数としてブロックを評価した結果が真であるような要素を self から削除します。

delete_if は常に self を返します。 reject! は、要素を削除しなかった場合には nil を返し、そうでなければ self を返します。

ブロックを省略した場合は Enumerator を返します。



h = { 2 => "8" ,4 => "6" ,6 => "4" ,8 => "2" }

p h.reject!{|key, value| key.to_i < value.to_i }   #=> { 6 => "4", 8 => "2" }
p h                                                #=> { 6 => "4", 8 => "2" }

p h.delete_if{|key, value| key.to_i < value.to_i } #=> { 6 => "4", 8 => "2" }
p h.reject!{|key, value| key.to_i < value.to_i }   #=> nil

[SEE_ALSO] Hash#reject,Hash#delete

[SEE_ALSO] Hash#keep_if,Hash#select!