我有一个带整数值的哈希:
h = {
a: 1,
b: 1,
c: 1,
d: 2,
e: 2,
}
Run Code Online (Sandbox Code Playgroud)
我需要添加100第一个值,对于第二个值和on,我需要将前面的值添加到原始值中以获得:
{
a: 101,
b: 102,
c: 103,
d: 105,
e: 107,
}
Run Code Online (Sandbox Code Playgroud)
有没有一个很好的方法来实现这一目标?
您可以inject用来计算总和:
h = { a: 1, b: 1, c: 1, d: 2, e: 2}
h.inject(100) { |s, (k, v)| s + v }
#=> 107
Run Code Online (Sandbox Code Playgroud)
在这样做的同时,您还可以设置哈希值以获得累积总和:
h.inject(100) { |s, (k, v)| h[k] = s + v }
h #=> {:a=>101, :b=>102, :c=>103, :d=>105, :e=>107}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |