hash.each {|k, v| puts k if v == hash.values.max }
Sprawdza każdą parę klucz-wartość i zwraca (lub w tym przypadku umieszcza) klucze, w których wartość jest równa maksymalnej ze wszystkich wartości. To powinno zwrócić więcej niż jeden klucz, jeśli jest remis.
Jeśli chcesz pobrać więcej niż jedną parę klucz-wartość na podstawie kolejności (druga co do wielkości, najmniejsza itp.), Bardziej wydajnym sposobem będzie jednokrotne posortowanie skrótu, a następnie uzyskanie pożądanych wyników.
def descend_sort(hash)
hash = hash.sort_by {|k,v| v}.reverse
end
Klucz o największej wartości
puts *hash[0][0]
Uzyskaj maks. I min
puts *hash[0],*hash[hash.length-1]
Druga co do wielkości para klucz-wartość
Hash[*hash[1]]
Aby przekonwertować tablicę skrótów z powrotem na skrót
W przypadku Rubiego mniejszego niż 2.3 możesz zamienić na
Którykolwiek &.lastz .try(:last)nich jest tylko zabezpieczeniem, jeśli twój kod źródłowy jest pusty:{}
Odpowiedzi:
To zwróci max hash para klucz-wartość w zależności od wartości elementów hash:
źródło
Znalazłem w ten sposób, zwróć klucz pierwszej wartości maksymalnej
źródło
Innym sposobem może być:
Sprawdza każdą parę klucz-wartość i zwraca (lub w tym przypadku umieszcza) klucze, w których wartość jest równa maksymalnej ze wszystkich wartości. To powinno zwrócić więcej niż jeden klucz, jeśli jest remis.
źródło
Możesz użyć metody select, jeśli chcesz, aby para klucz-wartość została zwrócona:
źródło
Jeśli chcesz pobrać więcej niż jedną parę klucz-wartość na podstawie kolejności (druga co do wielkości, najmniejsza itp.), Bardziej wydajnym sposobem będzie jednokrotne posortowanie skrótu, a następnie uzyskanie pożądanych wyników.
Klucz o największej wartości
Uzyskaj maks. I min
Druga co do wielkości para klucz-wartość
Aby przekonwertować tablicę skrótów z powrotem na skrót
źródło
Zrobiłem to dzisiaj z podobnym problemem i skończyło się na tym:
W przypadku Rubiego mniejszego niż 2.3 możesz zamienić na Którykolwiek
&.last
z.try(:last)
nich jest tylko zabezpieczeniem, jeśli twój kod źródłowy jest pusty:{}
źródło
To zwróci ostatni klucz skrótu posortowany według rozmiaru; jednak mogą istnieć dwa klucze o tej samej wartości.
źródło