Rubyリファレンス: Home

keep_if (Hash)

Edit   History

Ruby 1.9.2

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

hash.keep_if {|key, val| block }

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

select!と同じことをするメソッドですが、削除したときもしなかったときも戻り値は常にレシーバ自身です。ブロックを渡さなかったときはEnumeratorオブジェクトを返します。

scores = { "Alice" => 50, "Bob" => 60, "Carol" => 90, "David" => 40 }
scores.keep_if {|key, val| val >= 50 }
p scores
{"Alice"=>50, "Bob"=>60, "Carol"=>90}

関連項目