如果在哈希中存在密钥,则更改哈希值



我试图改变哈希中的密钥的值。我有我的算法将其更改为正确的值,唯一的问题是它改变了哈希中的所有值,而不仅仅是我想要的值。我如何仅更改哈希中的某些值?

我尝试了hash.has_key?(键)方法,它仍然改变了我的所有值

if @hash.has_key?(k)
  @hash.select {|k,v| v.price = (v.price/100)}
else 
  print "Key not found"
end

has_key?不是您的问题... Hash#select在所有值上迭代。

这是两个选项:

@hash.select{|k,v| v.price /= 100 if k == key}

if @hash.has_key?(key)
  @hash[key].price /= 100
else 
  print "Key not found"
end

最新更新