Car*_*ham -2 ruby ruby-on-rails
假设我有以下哈希数组
[
{
created: '11/11/86',
amount: 10,
},
{
created: '11/11/86',
amount: 20,
},
{
created: '12/11/86',
amount: 4,
}
]
Run Code Online (Sandbox Code Playgroud)
我想将所有哈希值与相同的created键合并,结果如下:
[
{
created: '11/11/86',
amount: 30,
},
{
created: '12/11/86',
amount: 4,
}
]
Run Code Online (Sandbox Code Playgroud)
我意识到我可以使用循环,但我正在寻找更优雅的东西.
哈希可能有更多的键,但我只关心这2.
您可以尝试使用map和sum(因为您使用的是rails):
arr.group_by{|x| x[:created]}.map{|date, x|
{
created: date,
amount: x.sum{|xx| xx[:amount]}
}
}
# => {:created=>"11/11/86", :amount=>30}, {:created=>"12/11/86", :amount=>4}]
Run Code Online (Sandbox Code Playgroud)