Tracks
/
Ruby
Ruby
/
Syllabus
/
Enumeration
En

Enumeration in Ruby

8 exercises

About Enumeration

Enumeration is the act of stepping through a collection (Array, Hash, etc) and performing some action on each object.

Enumeration is a key concept in Ruby and is used for sorting (sort_by), grouping (group_by), mapping (map), reducing (reduce), and much more. You'll most frequently see enumeration as the idiomatic way iterating through collections rather than using loops.

A simple enumeration to print each word in an array would look like this:

words = %w[the cat sat on the mat]
words.each do |word| 
  puts word 
end

# Output:
# the
# cat
# sat
# on
# the
# mat

In this example, we have called the Array#each method and passed in a block, which takes one parameter (word) and prints it.

We can also chain enumerable methods. For example, we can chain .with_index onto each to print out the index of an object as well as it's value:

words = %w[the cat sat on the mat]
list = words.map.with_index { |word, index| "#{index}: #{word}" }
puts list

# Output:
# 0. the
# 1. cat
# ...
# 5. mat

Enumerating Hash objects is exactly the same as enumerating Array objects, except that the block receives two arguments: the key and the value:

pet_names = {cat: "bob", horse: "caris", mouse: "arya"}
words.each { |animal, name| ... }

# The two arguments should be put in brackets when chaining
words.each.with_index { |(animal, name), index| ... }

The methods described above are part of the Enumerable module which is included in Array, Hash and other classes that require the ability to enumerate.

Edit via GitHub The link opens in a new window or tab

Learn Enumeration

Practicing is locked

Unlock 5 more exercises to practice Enumeration