Rubyリファレンス: Home

delete_if (Hash)

Edit   History

標準クラス・モジュール > Hash > delete_if

hash.delete_if {|key, val| block }

delete_ifメソッドは、繰り返しブロックを実行し、ブロックの戻り値が真になったキーと値を削除します。ブロック引数keyvalにはキーと値が入ります。レシーバ自身を変更するメソッドです。

reject!メソッドと同じ機能ですが、戻り値は常にレシーバ自身になります。

次の例は、値が50未満であるキーと値を削除します。

scores = { "Alice" => 50, "Bob" => 60, "Carol" => 90, "David" => 40 }
scores.delete_if {|key, val| val < 50 }
puts scores.has_key?("David")
false

関連項目