2011-05-30 102 views
0

可能重复:
Comparing ruby hashes比较2个散列红宝石

我如何比较两个哈希并只显示名称是否正确匹配。

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

能否请您补充一点,你应该得到给出的两个散列输出的例子吗? – robertodecurnex 2011-05-30 14:39:52

回答

0

我不知道如果这是你在找什么

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

或者更具体的,请。

2

如果diff的反转是你想要的,那么你可以试试这个。

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}