J'ai besoin de trouver la catégorie, dans un tableau, qui détient le "plus grand" poids. Je définis les poids dans une variable d'environnement:Utilisez max_by dans Ruby pour trouver la clé pour le nombre maximum dans un hachage
CATEGORY_WEIGHTS = {
"small_standard": 0,
"large_standard": 1,
"small_oversize": 2,
"medium_oversize": 3,
"large_oversize": 4
}
Dans cet exemple, la catégorie pondérée « plus » serait large_oversize
.
Le tableau qui je vérifie ressemble à ceci:
categories = [
"small_oversize",
"large_standard",
"small_standard",
"large_oversize"
]
Mais quand je fais cela, il ne retourne pas la valeur correcte:
max_category = categories.max_by{ |cat| CATEGORY_WEIGHTS[cat] }
Il retourne small_oversize
au lieu de large_oversize
.
Où est-ce que je me suis égaré?
Dans une déclaration de hachage ' "x": y' devient': x => y'. Pour les clés de chaîne réelles: '" x "=> y'. – tadman