Ruby on rails 从散列中删除密钥

Ruby on rails 从散列中删除密钥,ruby-on-rails,ruby,hash,Ruby On Rails,Ruby,Hash,例如,我必须删除所有表示空字符串的键 inventory = {"4"=>"", "1"=>"51059441", "3"=>""} 结果应该是 库存={“1”=>“51059441”}试试: 与delete\u相同,如果,但可以在副本上工作。您的思路是正确的,但哈希需要两个参数,键和值 inventory.reject{ |key, value| value == ""} 给予 {"1"=>"51059441"} 如果符合以下条件,您可以使用散列#删除_: has

例如,我必须删除所有表示空字符串的键

inventory = {"4"=>"", "1"=>"51059441", "3"=>""}
结果应该是

库存={“1”=>“51059441”}

试试:


delete\u相同,如果
,但可以在副本上工作。

您的思路是正确的,但哈希需要两个参数,键和值

inventory.reject{ |key, value| value == ""}
给予

{"1"=>"51059441"}
如果符合以下条件,您可以使用
散列#删除_

hash.delete_if {|k, v| !v.present? }
#=> {"1"=>"51059441"}

注意:
present?
是一种Rails方法。如果只想删除空字符串和数组,可以使用
empty?

测试=库存。拒绝!{| k | k==“”}
hash.delete_if {|k, v| !v.present? }
#=> {"1"=>"51059441"}