End of Life Ruby 3.0 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
instance method
Array#each
array.each {|element| ... } → self
array.each → Enumerator
array.c
View on GitHub ↗
VALUE
rb_ary_each(VALUE ary)
{
long i;
ary_verify(ary);
RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
for (i=0; i<RARRAY_LEN(ary); i++) {
rb_yield(RARRAY_AREF(ary, i));
}
return ary;
}
Iterates over array elements.
When a block given, passes each successive array element to the block; returns self:
Example
a = [:foo, 'bar', 2] a.each {|element| puts "#{element.class} #{element}" }
Output:
Example
Symbol foo String bar Integer 2
Allows the array to be modified during iteration:
Example
a = [:foo, 'bar', 2] a.each {|element| puts element; a.clear if element.to_s.start_with?('b') }
Output:
Example
foo bar
When no block given, returns a new Enumerator:
Example
a = [:foo, 'bar', 2] e = a.each e # => #<Enumerator: [:foo, "bar", 2]:each> a1 = e.each {|element| puts "#{element.class} #{element}" }
Output:
Example
Symbol foo String bar Integer 2
Related: each_index, reverse_each.