Ruby Hash解决同批次问题

2017-02-27 15:09:19 +0000

例如不同物品批次是自定义,同一物品属性是相同,但属性值不一定相同,且插入数据库顺序都不一致。如何判断同一物品是同批次。 Ruby Hash解决同批次是否相等问题,参考如下:

map1 = Hash.new

map1['a'] = 222

map1['b'] = 333

map1['c'] = 5656

map1['aaa'] = 222

map1['bbb'] = 333

map1['cc'] = 5656

 

map2 = Hash.new

map2['a'] = 222

map2['c'] = 5656

map2['b'] = 333

map2['aaa'] = 222

map2['cc'] = 5656

map2['bbb'] = 333

 

m1 = Hash[map1.sort_by{|key, val|key}]

m2 = Hash[map2.sort_by{|key, val|key}]

m1.to_json.to_s == m2.to_json.to_s

g1 = Digest::MD5.hexdigest(m1.to_json)

g2 = Digest::MD5.hexdigest(m2.to_json)

 

Ruby Hash table实现原理