代码之家  ›  专栏  ›  技术社区  ›  anish anil

如何在ruby中遍历散列数组

  •  0
  • anish anil  · 技术社区  · 6 年前

    尝试使用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"}
    

    有没有办法遍历这个数组,只列出薪水值而不列出其余的?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Simple Lime    6 年前

    在较新版本的ruby中(不确定它是什么时候引入的,可能是在ruby 2.0-ish中引入的,我相信是在ruby 2.0-ish中引入了关键字参数),您可以:

    people.each do |salary:,**|
      puts salary
    end
    

    哪里 ** 获取所有未命名的关键字参数并将其吞入(即 first_name job_title 散列中的键)。如果您的ruby版本不允许这样做,那么您只需要将整个散列存储在变量中:

    people.each do |person|
      puts person[:salary]
    end