我有一个哈希数组,其中我有用户名和价格,我想检索uniq订单

时间:2017-08-31 09:08:29

标签: ruby

我有哈希数组

[{"user"=>"a1", "drink"=>"d1", "price"=>"60"}, 
 {"user"=>"a2", "drink"=>"d2", "price"=>"30"}, 
 {"user"=>"a3", "drink"=>"d3", "price"=>"30"}, 
 {"user"=>"a2", "drink"=>"d4", "price"=>"40"}]

我想要用户的独特结果并将其与价格结合

[{"user"=>"a1", "drink"=>"d1", "price"=>"60"},
 {"user"=>"a2", "drink"=>"d2", "price"=>"70"}, 
 {"user"=>"a3", "drink"=>"d3", "price"=>"30"}
]

1 个答案:

答案 0 :(得分:0)

a = [{"user"=>"a1", "drink"=>"d1", "price"=>"60"},
 {"user"=>"a2", "drink"=>"d2", "price"=>"30"},
 {"user"=>"a3", "drink"=>"d3", "price"=>"30"},
 {"user"=>"a2", "drink"=>"d4", "price"=>"40"}]

 b = []

 a.each_with_object({}) do |x|
    count =  b.find {|y| y["user"] == x["user"] }
    if count.nil?
        b << x
    else
        count["price"] = count["price"].to_i + x["price"].to_i
        count["price"] = count["price"].to_s
    end
 end

puts b