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"}