ruby - 将前一个值添加到每个哈希值
问题描述
我有一个带有整数值的哈希:
h = {
a: 1,
b: 1,
c: 1,
d: 2,
e: 2,
}
我需要添加100
到第一个值,对于第二个值及以上,我需要将前面的值添加到原始值以获得:
{
a: 101,
b: 102,
c: 103,
d: 105,
e: 107,
}
有没有好的方法来实现这一目标?
解决方案
您可以inject
用来计算总和:
h = { a: 1, b: 1, c: 1, d: 2, e: 2}
h.inject(100) { |s, (k, v)| s + v }
#=> 107
在这样做的同时,您还可以设置哈希值以获得累积和:
h.inject(100) { |s, (k, v)| h[k] = s + v }
h #=> {:a=>101, :b=>102, :c=>103, :d=>105, :e=>107}
推荐阅读
- javascript - 如何使用 withSuccessHandler 正确返回值
- javascript - SVG 路径长度,直到路径的特定点
- drawerlayout - DrawerLayout - 允许点击打开的抽屉
- ios - 如何在 SwiftUI 中的大型导航栏标题旁边显示配置文件图标?
- sql - 枢轴然后按价值分组
- c# - xamarin 表单中从 firebase 到 listView 的数据
- c# - 避免可空值类型的 Value 属性?
- mongodb - 在 CENTOS 中安装 MONGODB
- java - 如何使用 eclipse jdt 获取方法的主体?
- mysql - Rust:我们如何在 MySQL 上运行带有大量参数的 DML?