instance method
Hash#fetch_values
(*K) -> ::Array[V]
[X] (*K) { (K) -> X } -> ::Array[V | X]
fetch_values(*keys) → new_array
fetch_values(*keys) {|key| ... } → new_array
hash.c
View on GitHub ↗
static VALUE
rb_hash_fetch_values(int argc, VALUE *argv, VALUE hash)
{
VALUE result = rb_ary_new2(argc);
long i;
for (i=0; i<argc; i++) {
rb_ary_push(result, rb_hash_fetch(hash, argv[i]));
}
return result;
}
When all given keys are found, returns a new array containing the values associated with the given keys:
Example
h = {foo: 0, bar: 1, baz: 2} h.fetch_values(:baz, :foo) # => [2, 0]
When any given keys are not found and a block is given, calls the block with each unfound key and uses the block’s return value as the value for that key:
Example
h.fetch_values(:bar, :foo, :bad, :bam) {|key| key.to_s} # => [1, 0, "bad", "bam"]
When any given keys are not found and no block is given, raises KeyError.
Related: see Methods for Fetching.