La règle: Pour le tri dans l'ordre croissant, si le premier paramètre de la fonction de comparaison est plus grand, le retour 1.
Les mots clés sont « ascendante », « premier », « plus » et "1". Dans chaque cas, pensez à ce qui est "meilleur":
- "Croissant" est mieux.Pensez à "gravir les échelons" et "relever le défi".
- "Premier" est meilleur.Pensez "première ligne" et "première place".
- "Plus grand" est meilleur.Ce cliché existe déjà. Dit Nuff.
- "Positif" est meilleur.Pensez "attitudes positives" et "résultats positifs". (Sinon, "plus" est également mieux penser "c'est un gros plus.".)
Ensuite, vous pouvez penser à ce qui suit comme vous écrivez votre code:
var array = [3,2,1,2];
document.write('unsorted array: ' + array + '</br>');
var POSITIVE = 1;
var SAME = 0;
var NEGATIVE = -1;
array.sort(function compare(firstParam, secondParam) {
var theyAreTheSame = (firstParam === secondParam);
// that shouldn't require any memory aid
var firstIsBigger = (firstParam > secondParam);
if (theyAreTheSame) return SAME
else if (firstIsBigger) return POSITIVE // the key line
else return NEGATIVE;
});
document.write('sorted array: ' + array);
Cela conduit à ce qui suit:
- pour trier dans le meilleur ordre (le croissant un) ...
- ... si le meilleur paramètre (c.-à-d. le premier) ...
- ... est la meilleure taille relative (c'est-à-dire plus grande) ...
- ... alors la meilleure valeur (c'est-à-dire la valeur positive) devrait être renvoyée par la fonction de comparaison.
(Avertissement: Je ne prétends pas sur l'utilité de cette aide mémoire pour les autres langues ou même d'autres fonctions, mais, bon, je l'espère, il aide quelqu'un avec sorte de tableau de Javascript)
Mise à jour: Correction du code en remplaçant 'let' et 'const' par 'var' (ierevenir de ES6 à ES5 pour les déclarations de variables) afin que le code fonctionne non seulement dans Firefox mais aussi dans Chrome et Safari. (Je n'ai pas vérifié Internet Explorer ou d'autres navigateurs.)
Je le déduis de la comparaison de nombres standard '(a, b) => a-b' quand j'en ai besoin. – Bergi