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)
有没有办法迭代这个数组并仅列出工资值而不列出其余值?
在较新版本的 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)
| 归档时间: |
|
| 查看次数: |
6122 次 |
| 最近记录: |