比较红宝石中的2个哈希值

时间:2011-05-30 10:47:27

标签: ruby hash

  

可能重复:
  Comparing ruby hashes

如何比较两个哈希值并仅在名称匹配正确时显示。

element1 = {:name => "Original", :description => "The original one!"}
element2 = {:name => "Original", :description => ""}

2 个答案:

答案 0 :(得分:2)

如果您想要反向差异,那么您可以试试这个。

class Hash
  def in_both(other)
    self.keys.inject({}) do |memo, key|
      memo[key] = self[key] if self[key] == other[key]
      memo
    end
  end
end

> element1.in_both(element2)
=> {:name=>"Original"}

或更短的

element1.select{|k,v| element2[k]==v}

答案 1 :(得分:0)

我不知道这是否是您正在寻找的

element1[:name] == element2[:name]

或者更具体一点,请。