迭代数组或哈希在Ruby中查找键

时间:2017-06-29 20:04:33

标签: arrays ruby hash

我一直只能找到遍及哈希数组的答案,以找到特定的值。我想迭代一系列哈希来找到一个键。我正在尝试访问密钥:标签。数组每次都会更改元素的长度和位置,因此我不能依赖于硬编码索引。这是我的阵列:

array = [
 {:status=>"100", 
  :status_msg=>"OUT_OF_ZONE", :order_ref=>"S", :order_id=>"28704622",
  :price=>"0", :"@xsi:type"=>"tns:Result"},
 {:status=>"100", 
  :status_msg=>"OUT_OF_ZONE", :order_ref=>"4", :order_id=>"28704623",
  :price=>"0", 
  :labels=>{:label_str=>"**%*%"}}
]

1 个答案:

答案 0 :(得分:1)

在Ruby 2.3+中,您可以使用Hash#dig返回嵌套键的值或nil。

labels = array.map{ |h| h.dig(:labels)}.compact

仅添加

.compact以删除nil条目。如果你想保持相同大小的阵列,请不要这样做。