我看到很多答案都是删除任何有list.stream().distinct().count() == list.size()
或nil
值的密钥,但这不是我想要的。
我有这样的哈希
""
我只想删除hash的密码属性,如果它为空,{"firstname"=>"Jie",
"lastname"=>"Pton",
"email"=>"jami4@yahoo.com",
"country_id"=>"1",
"payment_method"=>"0",
"insight_id"=>"",
"password"=>""}
为空
答案 0 :(得分:3)
更通用的解决方案:对于作为输入提供的哈希(我假设它是 this._http.post('/list/items/update?itemId=' + itemId + "&done=" + done, null)
.subscribe();
,所以我们称之为params
)以及空白时要删除的字段列表:
params
答案 1 :(得分:1)
hash.delete('password') if hash['password'].blank?
答案 2 :(得分:0)
您也可以使用此解决方案:
hash.reject { |k,v| v.nil? || v.empty? }
答案 3 :(得分:0)
您可以使用:
hash.reject{|k,v| k == 'password' && (v.nil? || v.empty?)}
或者如果您想从原始哈希中删除"password"
密钥,可以使用"!"
例如。 hash.reject!{|k,v| k == 'password' && (v.nil? || v.empty?)}