如何遍历哈希数组,逐个获取并打印嵌套数组hobbies的值?
如何遍历哈希数组并只打印指定键"hobbies"的值
你当前的代码会遍历每个哈希里的所有键值对,打印出所有value,但其实完全不需要遍历整个哈希——直接定位到"hobbies"这个键就能拿到你要的值。
方案1:直接打印每个人的爱好列表
如果只是想输出每个人的完整爱好数组,用这段代码就行:
people.each do |person| p person["hobbies"] end
运行后输出:
["basketball", "chess", "phone tag"] ["programming", "reading", "jogging"] ["cricket", "baking", "stamp collecting"]
方案2:逐个打印每个爱好
要是你想把每个爱好单独打印出来,可以再加一层遍历:
people.each do |person| person["hobbies"].each do |hobby| p hobby end end
运行后输出:
"basketball" "chess" "phone tag" "programming" "reading" "jogging" "cricket" "baking" "stamp collecting"
原代码的问题在于多了inner.each { |key, value| ... }这一步,这会遍历哈希里的所有键(包括first_name、last_name),完全没必要,直接通过键名取值就够了。
内容的提问来源于stack exchange,提问作者lucy
相关产品推荐
相关产品推荐

