Method: Hash#select

Defined in:
hash.c

#select {|key, value| ... } ⇒ Hash #selectObject

Returns a new hash consisting of entries for which the block returns true.

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

h = { "a" => 100, "b" => 200, "c" => 300 }
h.select {|k,v| k > "a"}  #=> {"b" => 200, "c" => 300}
h.select {|k,v| v < 200}  #=> {"a" => 100}

Overloads:

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

    Yields:

    Returns:



1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
# File 'hash.c', line 1238

VALUE
rb_hash_select(VALUE hash)
{
    VALUE result;

    RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);
    result = rb_hash_new();
    if (!RHASH_EMPTY_P(hash)) {
	rb_hash_foreach(hash, select_i, result);
    }
    return result;
}