我有这样的哈希
hash_variable = {"74"=> {"x"=>{"order_id"=>"3643731"}, "x"=>{"order_id"=>"618787", "detail_id"=>"115", "qty"=>"1"}}}
注意:"x" -> 1..n
来自每个的索引。
如果detail_id
为nil
,我想拒绝哈希。我尝试使用正则表达式:
hash_variable.each do |items|
unless items[/(\d+)/][:detail_id].nil?
p items
end
end
# => `NoMethodError: undefined method '[]' for nil:NilClass`
我可以将正则表达式用于" x"得到任何哈希有detail_id
密钥?如果没有,如果detail_id
为零,我该如何拒绝哈希?
答案 0 :(得分:1)
好的,我已经解决了我的问题。
hash_variable = {"74"=> {"0"=>{"order_id"=>"3643731"}, "1"=>{"order_id"=>"618787", "detail_id"=>"115", "qty"=>"1"}}}
hash_variable.each do |key,items|
p items.select { |k,v| !v['detail_id'].nil? }
end
# {"1"=>{"order_id"=>"618787", "detail_id"=>"115", "qty"=>"1"}}
从tadman的建议更新上述
hash_variable.each do |key,items|
p items.select { |k,v| v['detail_id'] }
end