所以我有两个散列数组:

a = [{"b"=>123,"c"=>456}, {"b"=>456,"c"=>555}]
b = [{"c"=>456,"d"=>789},  {"b"=>222,"c"=>444}]

如何将它们与键c的值在ab中相等的条件连接起来意思是我希望能够连接到a['c'] == b['c']
这就是我想要得到的结果:
final_array = [{"b"=>123,"c"=>456,"d"=>789}, {"b"=>456,"c"=>555}, {"b"=>222,"c"=>444}]

最佳答案

a = [{"b"=>123,"c"=>456}, {"b"=>456,"c"=>555}]
b = [{"c"=>456,"d"=>789}, {"b"=>222,"c"=>444}]

p a.zip(b).map{|h1,h2| h1["c"] == h2["c"] ? h1.merge(h2) : [h1 ,h2]}.flatten
# => [{"b"=>123, "c"=>456, "d"=>789}, {"b"=>456, "c"=>555}, {"b"=>222, "c"=>444}]

关于ruby - 如何基于相同的哈希键值合并两个哈希数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17409744/

10-11 02:18