Skip to content

Maintenance Ruby 3.4 gets fixes, but no new features. Switch to Ruby 4.0 →

instance method

Hash#each

() { ([ K, V ] arg0) -> untyped } -> self
() -> ::Enumerator[[ K, V ], self]
hash.each {|key, value| ... } → self
hash.each → new_enumerator

Alias of #each_pair

Calls the given block with each key-value pair; returns self:

Example
h = {foo: 0, bar: 1, baz: 2}
h.each_pair {|key, value| puts "#{key}: #{value}"} # => {:foo=>0, :bar=>1, :baz=>2}

Output:

foo: 0
bar: 1
baz: 2

Returns a new Enumerator if no block given:

Example
h = {foo: 0, bar: 1, baz: 2}
e = h.each_pair # => #<Enumerator: {:foo=>0, :bar=>1, :baz=>2}:each_pair>
h1 = e.each {|key, value| puts "#{key}: #{value}"}
h1 # => {:foo=>0, :bar=>1, :baz=>2}

Output:

foo: 0
bar: 1
baz: 2
See also #each_pair #dig #each_key #delete_if also in 4.1 · 4.0 · 3.3 · 3.2 · 3.1 · 3.0