如何在散列的单个键中对一组值求和?
应该快一个!在别处找不到确切的查询:
我有一个散列形式:
{"Chicago"=>[35.0, 5.0, 7.0], "Austin"=>[12.0, 42.0, 15.0, 8.0], ... }
我只是想对哈希值(数组)中的数字求和,变成:
{"Chicago"=> 47.0, "Austin"=> 77.0, ... }
我已经尝试过sum和inject(hash.values.each.inject(0) { |sum, x| sum + x}等)并且遇到了“数组不能被强制转换为整数”异常,我不确定解决这个问题的正确方法,尽管这似乎是一个相对简单的问题!
回答
看看Hash#transform_values。你也可以inject用Array#sum替换。
hash.transform_values(&:sum)