You've successfully subscribed to The Poor Coder | Hackerrank Solutions
Great! Next, complete checkout for full access to The Poor Coder | Hackerrank Solutions
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Hackerrank Ruby - Enumerable - each_with_index Solution

Hackerrank Ruby - Enumerable - each_with_index Solution

Beeze Aal
Beeze Aal

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