Method: Hash#select

Defined in:
hash.c

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

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}

Hash#filter is an alias for Hash#select.

Overloads:

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

    Yields:

    Returns:

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

    Yields:

    Returns:



2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
# File 'hash.c', line 2621

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;
}