繁体   English   中英

如何在 hash 中添加 hash 值并包含在 Ruby 中的数组中?

[英]How to add hash value inside the hash and that contain in array in Ruby?

所以我有一个包含多个哈希的数组,例如:

[{"name"=>"a", "agg_value"=>"75.000000"}, {"name"=>"b", "agg_value"=>"25.000000"}, {"name"=>"a", "agg_value"=>"75.01000"}]

我想使用 ruby 进行如下转换:

[{"name"=>"a", "agg_value"=>"150.000000"}, {"name"=>"b", "agg_value"=>"25.000000"}]

如果小数点不重要,你可以尝试这样的事情:

array = [{"name"=>"a", "agg_value"=>"75.000000"}, {"name"=>"b", "agg_value"=>"25.000000"}, {"name"=>"a", "agg_value"=>"75.01000"}]

array
  .group_by { |e| e['name'] }
  .map do |k, v|
    {
      'name' => k,
      'agg_value' => v.sum { |e| e['agg_value'].to_f }.to_s
    }
  end

如果你想要 6 位小数,那么 go 为:

array
  .group_by { |e| e['name'] }
  .map do |k, v|
    {
      'name' => k,
      'agg_value' => '%.6f' % v.sum { |e| e['agg_value'].to_f }
    }
  end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM