instance method
Hash#select
() { (K, V) -> ::boolish } -> ::Hash[K, V]
() -> ::Enumerator[[ K, V ], ::Hash[K, V]]
select {|key, value| ... } → new_hash
select → new_enumerator
hash.c
View on GitHub ↗
static VALUE
rb_hash_select(VALUE hash)
{
VALUE result;
RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);
result = hash_dup_with_compare_by_id(hash);
if (!RHASH_EMPTY_P(hash)) {
rb_hash_foreach(result, keep_if_i, result);
compact_after_delete(result);
}
return result;
}
With a block given, calls the block with each entry’s key and value; returns a new hash whose entries are those for which the block returns a truthy value:
Example
h = {foo: 0, bar: 1, baz: 2} h.select {|key, value| value < 2 } # => {foo: 0, bar: 1}
With no block given, returns a new Enumerator.
Related: see Methods for Deleting.