arr = [{name: 'd1', value: 10}, {name: 'd2', value: 30}, {name: 'd1', value: 5}, {name: 'd3', value:4}, {name: 'd2', value: 5}]
Как получить из него массив с суммой у одинаковых именarr = [{name: 'd1', value: 15], {name: 'd2', value: 35}, {name: 'd3', value: 4}
arr
.group_by{|n| n[:name]}
.map{|n| { name: n[0], value: n[1].sum{|m| m[:value]} }}