我有一系列问题,每个问题都有 acategory_id
和 a value
。
我想映射这些,以便当category_id
哈希中已经存在键 () 时,将这些值相加。
最后,我想在哈希中找到最大值:
h = Hash.new {|k, v| k[v] = 0}
@test_session.answered_questions.each do |q|
if h.key?(q.category_id)
#add q.value to the value stored in the hash
else
h = { q.category_id => q.value } #insert the "q.category_id" as key and with value "q.value"
end
end
key_with_max_value = h.max_by { |k, v| v }[0] #find the highest value
@result.category = key_with_max_value
@result.score = h[key_with_max_value].value
可能有更好的方法来实现这一点,但我对 Ruby 还是很陌生。