合并一些复杂的红宝石 [英] merge some complex hashes in ruby

查看:124
本文介绍了合并一些复杂的红宝石的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  h1 = {201201=> {:received => 2},201202=> {:received => 4}} 
h2 = {201201=> {:closed => 1},201202=> {:closed => 1}}

特别是,我的预期结果是:

  h1 = {201201=> {:received => 2,:closed => 1},201202=> {:received => 4,:closed => 1}} 

我曾尝试过各种方式:

  h = h1.merge(h2){| key,first,second | {第一,第二}} 

不幸的是,对我而言,这两者似乎都没有问题。
任何建议都将得到真正的赞赏。

解决方案

这应该适合您:

  h = h1.merge(h2){| key,first,second | first.merge(second)} 


I'd like to merge the following hashes together.

 h1 = {"201201" => {:received => 2},   "201202" => {:received => 4 }}
 h2 = {"201201" => {:closed => 1},  "201202" => {:closed => 1 }}

particularly, my expected result is:

h1 = {"201201" => {:received => 2, :closed => 1},  "201202" => {:received => 4, :closed => 1 }}

I have tried every way as:

h = h1.merge(h2){|key, first, second| {first , second} }

unfortunately, neither seemed to work out fine for me. any advice would be really appreciated.

解决方案

This should work for you:

h = h1.merge(h2){|key, first, second| first.merge(second)}

这篇关于合并一些复杂的红宝石的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆