Opa, sou novo no site, e também no Ruby.
Minha dúvida é: Existe uma forma mais eficiente de classificar uma hash de acordo com os valores?
Fiz o código abaixo, porém tenho certeza que não é a forma mais eficiente.
agents = {"pedro" => 7, "lucas" => 12, "gabriel" => 15, "tadeu" => 4, "denis" => 22, "fabio" => 0} agents_array = agents.sort_by { |k, v| v }.reverse agents_array.map { |element| element.rotate! 1 } agents_ordered = Hash.new agents_array.each do |element| agents_ordered[element[1]] = agents[element[1]] end puts agents_ordered.inspect
Input: agents = {“pedro” => 7, “lucas” => 12, “gabriel” => 15, “tadeu” => 4, “denis” => 22, “fabio” => 0}
Outup Esperado: agents_ordered = {“denis”=>22, “gabriel”=>15, “lucas”=>12, “pedro”=>7, “tadeu”=>4, “fabio”=>0}
Qual seria a forma mais eficiente de fazer a classificação?