我必须删除所有代表空字符串的键,例如
inventory = {"4"=>"", "1"=>"51059441", "3"=>""}
结果应该是
inventory = {“1”=>“51059441”}
答案 0 :(得分:1)
尝试reject
:
=> {"4"=>"", "1"=>"51059441", "3"=>""}.reject { |_, y| y.empty? }
#> {"1"=>"51059441"}
与delete_if
相同,但适用于副本。
答案 1 :(得分:1)
您可以使用Hash#delete_if
:
hash.delete_if {|k, v| !v.present? }
#=> {"1"=>"51059441"}
注意:present?
是一种Rails方法。如果您只想删除空字符串和数组,则可以使用empty?
。
答案 2 :(得分:0)
你是在正确的轨道上,但哈希需要两个参数,键和值
inventory.reject{ |key, value| value == ""}
给出
{"1"=>"51059441"}