如何在 ruby​​ 中迭代哈希数组

ani*_*nil 1 ruby ruby-on-rails ruby-on-rails-3

尝试使用 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"}]
Run Code Online (Sandbox Code Playgroud)

如何迭代上面的哈希以仅输出工资值???

我尝试使用:

people.each do |i,j,k|
  puts "#{i}"
end
Run Code Online (Sandbox Code Playgroud)

结果如下,不是我想要的,

{: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"}
Run Code Online (Sandbox Code Playgroud)

有没有办法迭代这个数组并仅列出工资值而不列出其余值?

Sim*_*ime 5

在较新版本的 Ruby 中(不确定它是什么时候引入的,可能是在 ruby​​ 2.0 左右,我相信关键字参数是在那时引入的),你可以这样做:

people.each do |salary:,**|
  puts salary
end
Run Code Online (Sandbox Code Playgroud)

where**获取所有您未命名的关键字参数并吞掉它们(即散列中的first_name和键)。job_title如果您的 ruby​​ 版本不允许这样做,您只需将整个哈希存储在变量中:

people.each do |person|
  puts person[:salary]
end
Run Code Online (Sandbox Code Playgroud)