Hackerrank Ruby - Enumerable - each_with_index Solution
In the previous challenge, we learned about each
method being central to all of the methods provided by Enumerable
class. One of such useful methods is each_with_index
which allows you to iterate over items along with an index keeping count of the item.
For example,> colors = ['red', 'green', 'blue']> colors.each_with_index { |item, index| p "#{index}:#{item}" }"0:red""1:green""2:blue"
As you can note, the counting of items starts from 0.
In this challenge, your task is to complete the skip_animals
method that takes an animals
array and a skip
integer and returns an array of all elements except first skip
number of items as shown in the example below.
For example,> skip_animals(['leopard', 'bear', 'fox', 'wolf'], 2)=> ["2:fox", "3:wolf"]
It is guaranteed that number of items in animals
array is greater than the value of skip
.
Solution in ruby
Approach 1.
def skip_animals(animals, skip)
result = []
animals.each_with_index { |a, i| result << "#{i}:#{a}" if i >= skip }
result
end
Approach 2.
def skip_animals(animals, skip)
arr = []
animals.each_with_index {|animal, i| arr.push("#{i}:#{animal}") if i >= skip}
arr
end
Approach 3.
def skip_animals(animals, skip)
rv = []
animals.each_with_index do |a, i|
rv << "#{i}:#{a}" if i >= skip
end
rv
end