如何合并Ruby哈希 [英] How to merge Ruby hashes

查看:99
本文介绍了如何合并Ruby哈希的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何合并这两个哈希:

How can I merge these two hashes:

{:car => {:color => "red"}}
{:car => {:speed => "100mph"}}

得到:

To get:

{:car => {:color => "red", :speed => "100mph"}}


推荐答案

= http://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-merge> 散列#合并 方法:

There is a Hash#merge method:

ruby-1.9.2 > a = {:car => {:color => "red"}}
 => {:car=>{:color=>"red"}} 
ruby-1.9.2 > b = {:car => {:speed => "100mph"}}
 => {:car=>{:speed=>"100mph"}} 
ruby-1.9.2 > a.merge(b) {|key, a_val, b_val| a_val.merge b_val }
 => {:car=>{:color=>"red", :speed=>"100mph"}} 

如果您需要合并嵌套散列,您可以创建一个递归方法:

You can create a recursive method if you need to merge nested hashes:

def merge_recursively(a, b)
  a.merge(b) {|key, a_item, b_item| merge_recursively(a_item, b_item) }
end

ruby-1.9.2 > merge_recursively(a,b)
 => {:car=>{:color=>"red", :speed=>"100mph"}} 

这篇关于如何合并Ruby哈希的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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