Variables:Trier un vecteur Javascript
Un article de WikiTuto.
Sommaire |
Explication
L'objet vecteur possède une fonction membre, une méthode, nommée sort() qui permet de trier les éléments du vecteur par ordre alphabétique ascendant puis de retourner une string de ces éléments triés mis bout à bout. Cet ordre alphabétique tri d'abord les string commençant par des majuscules, puis celles avec des minuscules. Lorsqu'on emploie sort() sur un vecteur de nombres, ces derniers sont triés par ordre alphabétique.
Exemple
var tab= new Array(4); tab[0]= 3; tab[1]= 10; tab[2]= 20; tab[3]= 2; document.write(tab.sort()); // Affiche : 10,2,20,3
Tri avec une fonction de comparaison (prédicat)
Il est possible de donner un prédicat à sort() pour qu'il tri d'une manière qu'on a définie. Un prédicat est une fonction de comparaison qu'on peut écrire et envoyer à une fonction de tri. Le tri se fait alors en comparant les éléments ensemble grâce au code de la fonction de comparaison. Voici un exemple qui permet de trier d'une manière numérique :
Exemple
// Fonction de comparaison que j'ai mise dans mon <head>
function triNumerique(p_nombre1, p_nombre2)
{
return p_nombre1 - p_nombre2;
}
// Appel dans le code de ma page avec le vecteur de l'exemple précédent (tab)
var stringEnOrdre= tab.sort(triNumerique);
Lorsque sort() est exécuté, triNumerique est appelé. Cette fonction reçoit deux paramètres et retourne la différence entre les deux. Ce résultat est utilisé par sort() pour trier les nombres par ordre numérique.
L'objet Array (vecteur) possède aussi la méthode reverse() qui permet d'afficher en ordre à l'envers de l'ordre alphabétique. Finalement il s'agit du contraire de sort().



