nickcoffey
nickcoffey

Reputation: 211

Struggling to make sense of an array

So I am trying to make the transition from PHP to ruby(finally). I am attempting to complete the rubymonk challenges but I am stuck on the third challenge.

The challenge itself is easy and I've already found a solution, but I cant figure out what type of data I'm looking at or how to process it properly.

The challenge simply wants you create a method that takes a array containing some strings, and return a count of each string in that same position. so ["I","suck","at","ruby"] == ["1","4","2","4"].

That part is Ez-pz, but I cant for the life of me figure out how to process the input properly.

It gives you a shell of method and tells you to complete it

def lenght_finder(input_array)
   #I added the print input_array
   print input_array #=> ["I","am","genius"]["things","are","","awesome"]
end

Is this a multidimensional array? I've tried to replicate this in IRB with

input_array = ["I","am","genius"]["things","are","","awesome"]

but it returns and error

input_array = [["I","am","genius"],["things","are","","awesome"]]

works, but that is clearly not that same. Because of this I am struggling to traverse the array to process that data properly. I can't get anything like input_array.flatten to work, or input_array[0] which returns "Ithings".

This is confusing me. Am I looking at a single array? a multidimensional array? Clearly it cant be a string. Why does it skip "am" when accessing input_array[0]?

Upvotes: 2

Views: 77

Answers (1)

Grant Birchmeier
Grant Birchmeier

Reputation: 18504

Ha, like Justin Ko suggested in his comment above, what you're seeing is the stdout of running the function twice.

Since you used print, there's no newline. Use puts instead.

This should help you see it more clearly:

def length_finder(input_array)
   puts '*** '+input_array.inspect
   return 0
end

Upvotes: 4

Related Questions