Ruby Ruby Loops Build a Simple Contact List Hash and Array Iteration

What's wrong with the program?

Using the each method, iterate over the contact_list array. Assign each array item to the local variable contact in the block and print out the value of the name and phone_number keys.

contact_list = [{"name" => "Jason", "phone_number" => "123"}, {"name" => "Nick", "phone_number" => "456"} ]

contact_list.each do |item| contact = item contact.each_value do |value| puts value end end ‚Äč

contact_list.rb
contact_list = [
  {"name" => "Jason", "phone_number" => "123"},
  {"name" => "Nick", "phone_number" => "456"}
]

contact_list.each do |item|
  contact = item
  contact.each_value do |value|
    puts value
  end
end

1 Answer

The loop is incorrect.

contact_list.each do |item| # This is going to do a full iteration
  contact = item 
  contact.each_value do |value| # Here you are doing another within the first iteration.
    puts value # you are only printing the value and not the key
  end
end

What they are looking for is actually this:

contact_list = [
  {"name" => "Jason", "phone_number" => "123"},
  {"name" => "Nick", "phone_number" => "456"}
]

contact_list.each do |item|
  # Every iteration will take what item has and print key and value
  puts item["name"]
  puts item["phone_number"]
end

Jonathan,

Did you run my code? Even my code is giving the same output as yours.

Anil.