Utilisation de Ruby 2.4. J'ai un hachage avec des clés et des valeurs qui sont à la fois des nombres (entiers). Étant donné un ensemble de clés, comment puis-je trouver l'entrée (à la fois la clé et la valeur) qui a la valeur la plus faible? Si je voulais trouver la valeur minimum que je pouvais faireComment puis-je trouver les clés et la valeur dans un hachage avec la valeur minimale, seulement parmi certaines clés?
my_hash.select{|k, v| my_selected_keys.include?(k) }.values.min_by(&:last)
Mais cela ne me prend la valeur, et non pas la clé et la valeur. Notez également que les valeurs de mon hash ne sont pas nécessairement uniques.
Si je sauvé le résultat à un varaible, conseillerai-je accéder alors clé et valeur en exécutant "a.key" et "a.value"? –
Non, mais la classe de hachage a '[]' pour tourner un tableau dans un hachage, de sorte que vous pouvez faire ceci: 'Hash [* my_hash.select {| k, _ | my_selected_keys.include? (k)} .sort_by {| _, v | v} .first] '(notez que vous devez ajouter l'opérateur splat (' * ') avant' my_hash' pour que cela fonctionne). – jerhinesmith