2017-08-31 48 views
-6

我有散的陣列我有散在我的用戶名和價格的陣列和我想要檢索的uniq爲了

[{"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"} 
] 
+3

「我想要的結果」 - 開發人員需要的代碼,當他們想要的結果。 – mudasobwa

+0

@伊利亞可以請你詳細說明bcoz m新紅寶石 –

+0

你是否嘗試閱讀文檔? – Ilya

回答

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 
+0

你濫用'each'。它應該是'b = a.each_with_object([]){...}'。 – mudasobwa

相關問題