如何遍历 ruby 中的哈希数组
How to iterate through an array of hashes in ruby
尝试使用 ruby 遍历数组但失败得很惨,
My Array
people = [{first_name: "Gary", job_title: "car enthusiast", salary: "14000" },
{first_name: "Claire", job_title: "developer", salary: "15000"},
{first_name: "Clem", job_title: "developer", salary: "12000"}]
如何遍历上述哈希值只输出薪水值???
我尝试使用:
people.each do |i,j,k|
puts "#{i}"
end
结果如下,不是我想要的,
{:first_name=>"Gary", :job_title=>"car enthusiast", :salary=>"14000"}
{:first_name=>"Claire", :job_title=>"developer", :salary=>"15000"}
{:first_name=>"Clem", :job_title=>"developer", :salary=>"12000"}
有没有办法遍历这个数组并只列出薪水值而不列出其他值?
在 Ruby 的较新版本中(不确定它是何时引入的,可能是在 ruby 2.0-ish 左右,我相信关键字参数是在这个时候引入的),你可以这样做:
people.each do |salary:,**|
puts salary
end
其中 **
获取所有您未命名的关键字参数并吞下它们(即散列中的 first_name
和 job_title
键)。如果这不是您的 ruby 版本所允许的,您只需将整个散列存储在变量中:
people.each do |person|
puts person[:salary]
end
尝试使用 ruby 遍历数组但失败得很惨,
My Array
people = [{first_name: "Gary", job_title: "car enthusiast", salary: "14000" },
{first_name: "Claire", job_title: "developer", salary: "15000"},
{first_name: "Clem", job_title: "developer", salary: "12000"}]
如何遍历上述哈希值只输出薪水值???
我尝试使用:
people.each do |i,j,k|
puts "#{i}"
end
结果如下,不是我想要的,
{:first_name=>"Gary", :job_title=>"car enthusiast", :salary=>"14000"}
{:first_name=>"Claire", :job_title=>"developer", :salary=>"15000"}
{:first_name=>"Clem", :job_title=>"developer", :salary=>"12000"}
有没有办法遍历这个数组并只列出薪水值而不列出其他值?
在 Ruby 的较新版本中(不确定它是何时引入的,可能是在 ruby 2.0-ish 左右,我相信关键字参数是在这个时候引入的),你可以这样做:
people.each do |salary:,**|
puts salary
end
其中 **
获取所有您未命名的关键字参数并吞下它们(即散列中的 first_name
和 job_title
键)。如果这不是您的 ruby 版本所允许的,您只需将整个散列存储在变量中:
people.each do |person|
puts person[:salary]
end