Hackerrank Ruby - Enumerable - Introduction Solution
.MathJax_SVG_Display {text-align: center; margin: 1em 0em; position: relative; display: block!important; text-indent: 0; max-width: none; max-height: none; min-width: 0; min-height: 0; width: 100%} .MathJax_SVG .MJX-monospace {font-family: monospace} .MathJax_SVG .MJX-sans-serif {font-family: sans-serif} .MathJax_SVG {display: inline; font-style: normal; font-weight: normal; line-height: normal; font-size: 100%; font-size-adjust: none; text-indent: 0; text-align: left; text-transform: none; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0; min-height: 0; border: 0; padding: 0; margin: 0} .MathJax_SVG * {transition: none; -webkit-transition: none; -moz-transition: none; -ms-transition: none; -o-transition: none} .mjx-svg-href {fill: blue; stroke: blue}
In control structures tutorial, we learned about various methods to iterate over a collection like unless
, loop
and the most commonly used each
method.
Ruby, however, provides an Enumerable
module which packages a bunch of methods which can be used with any other class by including it (referred to as mixing in). That means that programmers don't have to write all those methods many different times for different objects. As long as the custom object defines an each
method and includes Enumerable
module, it can get access to all of its magic.
In this challenge, you have been provided with a custom object called colors
that defines its own each
method. You need to iterate over the items and return an Array
containing the values.
Solution in ruby
Approach 1.
def iterate_colors(colors)
colors.to_a
end
Approach 2.
def iterate_colors(colors)
colors.to_a
end
Approach 3.
def iterate_colors(colors)
c = []
colors.each do |color|
c << color
end
c
end