How to condense summable metrics to a unique identifier in a ruby table

后端 未结 3 669
挽巷
挽巷 2021-01-21 13:43

I\'m trying to condense summable metrics to a unique identifier in a ruby table.

I have the following table:

[[\"id1\", 123], [\"id2\", 234], [\"id1\", 3         


        
3条回答
  •  Happy的楠姐
    2021-01-21 14:16

    I think the other answerers are overthinking this. You can do this with just one operation, each_with_object, and a Hash:

    metrics = [["id1", 123], ["id2", 234], ["id1", 345]]
    
    metrics.each_with_object(Hash.new(0)) do |(id, val), sums|
      sums[id] += val
    end
    # => {"id1"=>468, "id2"=>234}
    

    If you want an Array instead of a Hash at the end just call to_a on the result, but there are few compelling reasons to do so.

提交回复
热议问题