我有两个大麻-

hash1 = {a: "2", b: "34", c: "53", d: "23", e: "2"}
hash2 = {a: "5", c: "8", d: "3", e: "2", f: "76"}

我需要比较散列然后得到下一个-
hash1_1 = {a: "2", c: "53", d: "23", e: "2"}
hash2_1 = {a: "5", c: "8", d: "3", e: "2"}

也就是说,我需要比较两个散列,只留下那些键相等且都有散列的值。

最佳答案

我将做如下工作:

hash1 = {a: "2", b: "34", c: "53", d: "23", e: "2"}
hash2 = {a: "5", c: "8", d: "3", e: "2", f: "76"}

hash1_1 = hash1.select{|k,_| hash2.has_key? k}
# => {:a=>"2", :c=>"53", :d=>"23", :e=>"2"}
hash1_2 = hash2.select{|k,_| hash1.has_key? k}
# => {:a=>"5", :c=>"8", :d=>"3", :e=>"2"}

关于ruby-on-rails - Ruby:比较两个散列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20580821/

10-12 12:46