如果存在密钥则替换散列,否则插入

时间:2014-04-11 11:04:11

标签: ruby

我有一个哈希数组和一个哈希:

original = [{"a"=>1}, {"a"=>2}]
new = {"a"=>1, "z"=>2}

如果密钥original具有特定值,我想替换"a"中的哈希,假设为1。如果此键值对不存在,那么我想将该哈希作为另一个元素插入。结果应该是:

original = [{"a"=>1, "z"=>2},{"a"=>2}]

如果new如下:

new = {"a"=>2, "z"=>2}

然后我希望original成为:

original = [{"a"=>2, "z"=>2},{"a"=>1},{"a"=>2}]

如何在没有迭代的情况下执行此操作?我尝试了以下代码,但是当没有该键值对时不会插入。我怎么能一气呵成呢?

1 个答案:

答案 0 :(得分:0)

您可以使用Ruby的has_key?方法执行此操作,它将返回truefalse。例如

new = {"a"=>2, "z"=>2}

if new.has_key?("a")
  # do this
else
  # do this
end