我有两个哈希,例如:

{'a' => 30, 'b' => 14}
{'a' => 4, 'b' => 23, 'c' => 7}

其中abc是对象.如何将这些散列的键相加,得到一个新的散列,如:

{'a' => 34, 'b' => 37, 'c' => 7}

推荐答案

a_hash = {'a' => 30, 'b' => 14}
b_hash = {'a' => 4, 'b' => 23, 'c' => 7}

a_hash.merge(b_hash){ |k, a_value, b_value| a_value + b_value }
=> {"a"=>34, "b"=>37, "c"=>7}

b_hash.merge(a_hash){ |k, b_value, a_value| a_value + b_value }
=> {"a"=>34, "b"=>37, "c"=>7}

Ruby相关问答推荐

如何使用Ruby range?

python:pythonbrew 和 virtualenv 有什么区别?

检测安装的 CPU 数量

如何通过反射获取 Ruby 的 Module 类定义的常量?

将haml标签放入link_to helper

迭代一个数组,一次 n 项

覆盖子类中的 ruby​​ 常量,以便继承的方法使用新常量而不是旧常量?

Ruby注入初始为哈希

如何在 RSpec 2 中自动加载 spec_helper.rb

获取类中声明的所有实例变量

用 Ruby 解析 XML

通过 x 个字符在 Ruby 中获取子字符串

如何在 Mac OS X Lion 中安装 Ruby 1.9.3?

为什么 Ruby 没有真正的 StringBuffer 或 StringIO?

是否有更简单的(单行)语法来别名一个类方法?

使用 Ruby CSV 在导出的 CSV 中更改字段分隔符/分隔符

在 Ruby 中使用元组?

检索/列出 Redis 数据库中的所有键/值对

将 Nokogiri 文档转换为 Ruby 哈希

什么是 Ruby 1.9 标准 CSV 库?