In this HackerRank Ruby - Enumerable - each_with_index problem solution we learned about each method is central to all of the methods provided by the 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 the 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 the animal's array is greater than the value of skip.

HackerRank Ruby - Enumerable - each_with_index problem solution


Problem solution.

def skip_animals(animals, skip)
  # Your code here
    ret_array = []
    animals.each_with_index { |item, index| ret_array.push("#{index}:#{item}") if index >= skip }
    ret_array
end


Second solution.

def skip_animals(animals, skip)
  arr = []
    animals.each_with_index do |animal, ind|
        if ind >= skip
            arr << "#{ind}:#{animal}"
        end
    end
    arr
end