Ruby 在数组内的哈希上迭代
我有这个散列数组Ruby 在数组内的哈希上迭代,ruby,arrays,hash,Ruby,Arrays,Hash,我有这个散列数组 people = [ {:name => "Nick", :age => 28}, {:name => "John", :age => 29}, {:name => "Lisa", :age => 25}, {:name => "Brynn", :age => 24} ] 我想用以下代码打印出每个人的姓名: people.map { |x| x[:name] } names = [] people.each { |x| name
people = [
{:name => "Nick", :age => 28},
{:name => "John", :age => 29},
{:name => "Lisa", :age => 25},
{:name => "Brynn", :age => 24}
]
我想用以下代码打印出每个人的姓名:
people.map { |x| x[:name] }
names = []
people.each { |x| names << x[:name]}
有人能给我解释一下吗?谢谢 此行没有任何作用,因为您正在丢弃它的返回值:
people.map { |x| x[:name] }
它也与后面的两行无关
如果要生成名称列表,请使用该行并丢弃最后两行,但存储要返回的名称数组:
names = people.map { |x| x[:name] }
这就是你所需要的。它在数组people
上迭代,使用块的返回值构建一个新数组。本质上,它与前两行完全相同,但在一行中是干净的
这两个片段在功能上相同,但彼此无关。您需要选择一个或另一个:
names = people.map { |x| x[:name] }
或
names=[]
每个{x | names就是访问哈希键值的方式
哈希={name:“manu”}
为了从散列中得到manu,你必须
hash[:name]
其中name可以是您想要的密钥
names = []
people.each { |x| names << x[:name] }
hash[:name]