Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在哈希中求上一个值的和_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 在哈希中求上一个值的和

Ruby on rails 在哈希中求上一个值的和,ruby-on-rails,ruby,Ruby On Rails,Ruby,基本上,我得到了一个散列,我想将当前值与前一个值相加 i、 e 我所拥有的 hash = {:a=>5, :b=>10, :c=>15, :d=>3} 我想要的结果 {:a=>5, :b=>15, :c=>30, :d=>33} 以下内容将返回一个新的哈希实例: hash.each_with_object({}) { |(key, val), new_hash| new_hash[key] = val + (new_hash.values.la

基本上,我得到了一个散列,我想将当前值与前一个值相加

i、 e

我所拥有的

hash = {:a=>5, :b=>10, :c=>15, :d=>3}
我想要的结果

{:a=>5, :b=>15, :c=>30, :d=>33}

以下内容将返回一个新的哈希实例:

hash.each_with_object({}) { |(key, val), new_hash| new_hash[key] = val + (new_hash.values.last||0)  }
如果要保留原始散列,可以将
每个\u与\u对象一起使用

hash.each_with_object({}) { |(k, v), h| h[k] = v + (h.values.last||0)  }
# => {:a=>5, :b=>15, :c=>30, :d=>33} 

小心你的ruby版本
hash.each_with_object({}) { |(k, v), h| h[k] = v + (h.values.last||0)  }
# => {:a=>5, :b=>15, :c=>30, :d=>33}