2016-04-18 26 views
0

こんにちは、私はどうすればよいこの同じキーが異なる値を持つハッシュの配列をマージし、付加価値を

@receivers 
=> [{:amount=>50, :email=>"[email protected]"}, 
{:amount=>50, :email=>"[email protected]"}, 
{:amount=>50, :email=>"[email protected]"}, 
{:amount=>100, :email=>"[email protected]"}, 
{:amount=>100, :email=>"[email protected]"}] 

に似ロースハッシュ私はこれが

を?:ようにそれが見えるように持っています
@receivers 
=> [{:amount=>150, :email=>"[email protected]"} 
{:amount=>200, :email=>"[email protected]"}] 

ありがとうございました。

答えて

3

あなたはこのようにそれを計算することができます。これだけ

@receivers.group_by { |e| e[:email] } 
      .map { |k, v| { amount: v.sum { |e| e[:amount] }, email: k } } 



#=> [{:amount=>150, :email=>"[email protected]"}, 
# {:amount=>200, :email=>"[email protected]"}] 
+0

を!ありがとう。 – joeyk16

関連する問題