Ruby Compare 2 hashes -
Ruby Compare 2 hashes -
is there way compare 2 hashes if keys not in same order? instance
hash1 = { "it"=> 10,"was"=>11,"the"=>14,"best"=>1,"of"=>12,"times"=>2, "worst"=>1,"age"=>2,"wisdom"=>1,"foolishness"=>1,"epoch"=>2, "belief"=>1,"incredulity"=>1,"season"=>2,"light"=>1,"darkness"=>1, "spring"=>1,"hope"=>1,"winter"=>1,"despair"=>1,"we"=>4,"had"=>2, "everything"=>1,"before"=>2,"us"=>2,"nothing"=>1,"were"=>2,"all"=>2, "going"=>2,"direct"=>2,"to"=>1,"heaven"=>1,"other"=>1, "way"=>1,"in"=>2,"short"=>1,"period"=>2,"so"=>1,"far"=>1,"like"=>1, "present"=>1,"that"=>1,"some"=>1,"its"=>2,"noisiest"=>1, "authorities"=>1,"insisted"=>1,"on"=>1,"being"=>1, "received"=>1,"for"=>2,"good"=>1,"or"=>1,"evil"=>1,"superlative"=>1, "degree"=>1,"comparison"=>1,"only"=>1 } hash2 = {"superlative"=>1, "it"=>10, "going"=>2, "spring"=>1, "age"=>2, "despair"=>1, "received"=>1, "good"=>1, "some"=>1, "worst"=>1, "was"=>11, "only"=>1,"us"=>2, "evil"=>1, "belief"=>1, "for"=>2, "darkness"=>1, "comparison"=>1, "short"=>1, "in"=>2, "present"=>1, "direct"=>2, "were"=>2, "way"=>1, "degree"=>1, "or"=>1, "of"=>12, "epoch"=>2, "incredulity"=>1, "period"=>2, "heaven"=>1, "other"=>1, "being"=>1, "its"=>2, "so"=>1, "authorities"=>1, "times"=>2, "we"=>4, "noisiest"=>1, "light"=>1, "hope"=>1, "foolishness"=>1, "everything"=>1, "far"=>1, "wisdom"=>1, "season"=>2, "like"=>1, "before"=>2, "had"=>2, "the"=>14, "nothing"=>1, "winter"=>1, "best"=>1, "that"=>1, "all"=>2, "insisted"=>1, "to"=>1, "on"=>1}
each hash has same keys. how go comparing them , making sure each key value correct. questions , answers i've seen show hashes keys in same order. matter?
i've tried use:
hash1_1 = hash1.select{|k,_| hash2.has_key? k}
which spit out:
{ "it"=>10, "was"=>11, "the"=>14, "best"=>1, "of"=>12, "times"=>2, "worst"=>1, "age"=>2, "wisdom"=>1, "foolishness"=>1, "epoch"=>2, "belief"=>1, "incredulity"=>1, "season"=>2, "light"=>1, "darkness"=>1, "spring"=>1, "hope"=>1, "winter"=>1, "despair"=>1, "we"=>4, "had"=>2, "everything"=>1, "before"=>2, "us"=>2, "nothing"=>1, "were"=>2, "all"=>2, "going"=>2, "direct"=>2, "to"=>1, "heaven"=>1, "other"=>1, "way"=>1, "in"=>2, "short"=>1, "period"=>2, "so"=>1, "far"=>1, "like"=>1, "present"=>1, "that"=>1, "some"=>1, "its"=>2, "noisiest"=>1, "authorities"=>1, "insisted"=>1, "on"=>1, "being"=>1, "received"=>1, "for"=>2, "good"=>1, "or"=>1, "evil"=>1, "superlative"=>1, "degree"=>1, "comparison"=>1, "only"=>1}
please help me in explaining need do. give thanks you.
two hashes same key/value pairs equal regardless of key order:
a = {:x => 1, :y => 2} b = {:y => 2, :x => 1} == b # => true
ruby-on-rails ruby hash
Comments
Post a Comment