我在名为 elem
的数组内有哈希值,并且我必须获取具有最高“count”值的“type”键。
我知道枚举器是一件很棒的事情,但我不太了解它们。
elem = [{"type"=>"dododo", "count"=>0, "name"=>"dododo's", "tip"=>"dododo's Level"},
{"type"=>"dadada", "count"=>1203, "name"=>"dadada's", "tip"=>"dadada's Degree"},
{"type"=>"dedede", "count"=>717, "name"=>"dedede's", "tip"=>"dedede's Degree"},
{"type"=>"dididi", "count"=>6, "name"=>"dididi's", "tip"=>"dididi or Professional Degree"}]
我正在尝试这个:
elem.each do |i|
i.each_with_index do |k,v|
puts v["count"]
end
end
但我知道我错过了一些步骤。
我知道这种“策略”相当常见并且了解很重要。
最佳答案
一种方法是使用 Enumerable#max_by
elem = [
{"type"=>"dododo", "count"=>0, "name"=>"dododo's", "tip"=>"dododo's Level"},
{"type"=>"dadada", "count"=>1203, "name"=>"dadada's", "tip"=>"dadada's Degree"},
{"type"=>"dedede", "count"=>717, "name"=>"dedede's", "tip"=>"dedede's Degree"},
{"type"=>"dididi", "count"=>6, "name"=>"dididi's", "tip"=>"dididi or Professional Degree"}
]
max_elem = elem.max_by {|e| e['count']}
puts max_elem['type']
# returns dadada
关于ruby - 如何对具有最高特定值的哈希进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440415/