Method: Hash#delete_if

Defined in:
hash.c

#delete_if {|key, value| ... } ⇒ Hash #delete_ifObject

Deletes every key-value pair from hsh for which block evaluates to true.

If no block is given, an enumerator is returned instead.

h = { "a" => 100, "b" => 200, "c" => 300 }
h.delete_if {|key, value| key >= "b" }   #=> {"a"=>100}

Overloads:

  • #delete_if {|key, value| ... } ⇒ Hash

    Yields:

    Returns:



1175
1176
1177
1178
1179
1180
1181
1182
1183
# File 'hash.c', line 1175

VALUE
rb_hash_delete_if(VALUE hash)
{
    RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);
    rb_hash_modify_check(hash);
    if (RHASH(hash)->ntbl)
	rb_hash_foreach(hash, delete_if_i, hash);
    return hash;
}