APIdock / Ruby
/
method

transform_values

ruby latest stable - Class: Hash
transform_values()
public

Returns a new hash with the results of running the block once for every value. This method does not change the keys.

h = { a: 1, b: 2, c: 3 }
h.transform_values  {|v| v * v + 1 } #=> { a: 2, b: 5, c: 10 }
h.transform_values (&:to_s) #=> { a: "1", b: "2", c: "3" }
h.transform_values .with_index {|v, i| "#{v}.#{i}" }
 #=> { a: "1.0", b: "2.1", c: "3.2" }

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

static VALUE
rb_hash_transform_values(VALUE hash)
{
 VALUE result;
 RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);
 result = rb_hash_new_with_size(RHASH_SIZE(hash));
 if (!RHASH_EMPTY_P(hash)) {
 rb_hash_foreach(hash, transform_values_i, result);
 }
 return result;
}

AltStyle によって変換されたページ (->オリジナル) /