我一直只能找到遍及哈希数组的答案,以找到特定的值。我想迭代一系列哈希来找到一个键。我正在尝试访问密钥:标签。数组每次都会更改元素的长度和位置,因此我不能依赖于硬编码索引。这是我的阵列:
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=>"**%*%"}}
]
答案 0 :(得分:1)
在Ruby 2.3+中,您可以使用Hash#dig
返回嵌套键的值或nil。
labels = array.map{ |h| h.dig(:labels)}.compact
.compact
以删除nil条目。如果你想保持相同大小的阵列,请不要这样做。