FAQ: Hashes and Symbols - Iterating Over Hashes

Community%20FAQs%20on%20Codecademy%20Exercises

This community-built FAQ covers the “Iterating Over Hashes” exercise from the lesson “Hashes and Symbols”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Learn Ruby

FAQs on the exercise Iterating Over Hashes

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

So the exercise says that the following will print out each key and value:

my_hash.each do |key, value|
puts my_hash[ ]
end

This doesn’t happen. Surely my_hash can’t be empty, but my_hash[key, value] also doesn’t work. Is there a way of printing out a key and value without doing the following:

my_hash.each do |key, value|
puts “#{key}: #{value}”
end

3 Likes

http://ruby-doc.org/core-1.9.3/Hash.html

ggwp :+1:

1 Like

Surely my_hash can’t be empty

Agreed. I’m not sure what the example is trying to achieve with:

puts my_hash[]

but it just causes an error:

wrong number of arguments (given 0, expected 1)

Some possible ways to print the key and value:

puts "#{key}: #{value}"

puts key + ': ' + value.to_s

puts key + ': ' + my_hash[key].to_s
4 Likes

The example is terrible and confused me too. They aren’t asking for the key value pair to be printed though, only the value. So you can just puts value

I don’t get it. One lesson before they say that the first term is the key and the second one is its value. Then in this lesson the code goes like this:

matz = { "First name" => "Yukihiro",
  "Last name" => "Matsumoto",
  "Age" => 47,
  "Nationality" => "Japanese",
  "Nickname" => "Matz"
}

Then the instruction tells you to print the values, but the hint tells you to print the key:

puts matz[key]

And if you run it like that, it prints the values:

Yukihiro
Matsumoto
47
Japanese
Matz

So, which one is the key and the value?