target = [{material: ‘legend‘, quantity: ‘5‘}, {material: ‘angel‘, quantity: ‘10‘}, {material: ‘angel‘, quantity: ‘5‘}]
target.each_with_object(Hash.new(0)) do |value, hash|
hash[value[:material]] += value[:quantity].to_i
end # {"legend"=>5, "angel"=>15}
target = [{material: ‘legend‘, quantity: ‘5‘}, {material: ‘angel‘, quantity: ‘10‘}, {material: ‘angel‘, quantity: ‘5‘}]
target.reduce(Hash.new(0)) do |hash, value|
hash[value[:material]] += value[:quantity].to_i
hash
end # {"legend"=>5, "angel"=>15}
原文:http://www.cnblogs.com/angelfan/p/5211986.html