迭代哈希数组

时间:2016-05-08 21:16:15

标签: arrays ruby loops hash iteration

我有这样的哈希。

h = {"name"=>"United States House of Representatives TX-21",
     "divisionId"=>"ocd-division/country:us/state:tx/cd:21",
     "levels"=>["country"],
     "roles"=>["legislatorLowerBody"],
     "officials"=>[{"name"=>"Lamar Smith",
                    "address"=>[
                      {"line1"=>"2409 rayburn house office building",
                       "city"=>"washington",
                       "state"=>"DC",
                       "zip"=>"20515"
                      }
                    ],
                    "party"=>"Republican",
                    "phones"=>["(202) 225-4236"],
                    "urls"=>["http://lamarsmith.house.gov/"],
                    "photoUrl"=>"http://...",
                    "channels"=>[
                      {"type"=>"Facebook", "id"=>"LamarSmithTX21"},
                      {"type"=>"Twitter", "id"=>"LamarSmithTX21"},
                      {"type"=>"YouTube", "id"=>"lamarsmithtexas21"}
                    ]
                   }
                  ]
    }

我正在尝试执行if语句,如果@nationalOffices哈希== levels,则会将此数组推送到另一个名为country的数组中。问题是级别哈希值是一个数组。我不知道该怎么做。任何建议将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以通过深入了解哈希来访问它,例如array[0]["levels"]。您可能必须将此API响应保存在变量中,然后按照自己的方式进行操作 如果您想了解有关哈希和数组的更多信息,这是一个非常好的教程:http://www.tutorialspoint.com/ruby/ruby_hashes.htm

答案 1 :(得分:0)

@nationalOffices<< my_array if levels == country? :#else声明在这里