à l'aide de sort_by en ruby (pour les rails)?
J'ai donc construit un tableau personnalisé des utilisateurs comme tel:
[["user1",432],["user1",53],["user9",58],["user5",75],["user3",62]]
Je veux les trier par 2n avait de la valeur dans chaque tableau, de la plus grande à la plus petite. J'ai un sentiment à l'aide de tri ou sort_by pour les tableaux est la façon de le faire, mais je ne suis pas vraiment sûr de savoir comment l'accomplir
Vous devez vous connecter pour publier un commentaire.
sort_by
Si vous êtes intéressé par
sort_by
, vous pourrait se déstructurent votre intérieur des tableauxou appelez l'opérateur index
Au lieu de l'inversion de vous pourrait réduire à néant les valeurs renvoyées à partir du bloc.
Encore une autre alternative serait d'utiliser un esperluette et
Array#last
.sorte
Une solution à l'aide de
sort
pourrait êtrearray.sort_by(&:last).reverse
.array.sort_by { |u, uid| -uid }
. Notez également qu'il pourrait bénéficier de l'utilisation deEnumerable#reverse_each
pour un encombrement plus de la marche arrière (lorsqu'un agent recenseur s'inscrit, bien sûr).utiliser ceci:
array.sort_by { |a| -a[1] }
sort_by
de ne pas avoir une option inverse.La solution à
sort_by
dans le sens inverse (-
ne fonctionne pas dans tous les cas, pensez à trier par chaîne):Il est plus lent que l'inverse dans le cas simple, mais elle peut être plus complexe, avec des sortes: