Retourner ' la page d'accueil de TJSRetourner ' la page d'accueil de TJS

Méthode : Array.sort()

Trie les éléments de tableau par ordre croissant ou selon la fonction optionnelle trier()

Syntaxe
void tableau.sort([Function trier])

Attention, incompatible avec Internet Explorer

Description
Trie les éléments de tableau par ordre croissant ou alphabétique croissant.

Si une fonction est passée en paramètre, le tri se réalise selon le signe positif ou négatif de la fonction trier() qui compare deux éléments entre eux.

Notez que sort() ne retourne aucun résultat. C'est bien le tableau sur lequel la méthode est appliquée qui est modifié.

Voir aussi reverse() pour inverser l'ordre d'un tableau.


Equivalent dans d'autres langages
Equivalent en PHP à asort() : Trie un tableau en ordre croissant.

Exemple 1 : Tri croissant et décroissant d'un tableau
Code source
<script type="text/javascript">
var tab=new Array("Pommes", "Poires", "Ananas", "Cerise", "Abricot");
document.write("Tableau d'origine : " + tab.join(", ") + "<BR>");
tab.sort()
document.write("Tri croissant : " + tab.join(", ") + "<BR>");
tab.reverse()
document.write("Tri décroissant : " + tab.join(", "));
</script>

Résultat
Emulation de la console
Explication
Crée un tableau de fruits, le trie par ordre croissant avec sort().
L'ordre décroissant est simplement obtenu avec l'appel à reverse() après le tri.

Exemple 2 : Trier avec une fonction
Code source
<script type="text/javascript">
var vehicules= [
   { nom: "Peugeot 208 1,2l PureTech", img:"208.png" , co2:108 },
   { nom: "Peugeot 5008 2.0 BlueHDi 150", img:"5008.png" , co2: 118 },
   { nom: "Golf GTI", img:"golfgti.png" , co2:148 },
   { nom: "Renault Clio 0.9 TCe 90", img:"clio.jpg" , co2:114 },
   { nom: "Audi A4 2.0 TDI 190", img:"a4.png" , co2: 111},
   { nom: "BMW Serie 2 Tourer 220d", img:"serie2tourer.png" , co2:124 },
   { nom: "Audi SQ7", img:"sq7.png" , co2:198 },
   { nom: "Audi TTS", img:"tts.png" , co2:159 },
];

console.log("TRI par CO2");
vehicules.sort(function (a, b) {
   return a.co2 - b.co2;
});
vehicules.forEach(function(v) {
   console.log("  "+v.nom+" avec "+v.co2+" g de CO2/km");    
});


console.log("TRI par nom");
vehicules.sort(function (a, b) {
 if (a.nom < b.nom) {
   return -1;
 } else {
   return 1;
 };
});
vehicules.forEach(function(v) {
   console.log("  "+v.nom+" avec "+v.co2+" g de CO2/km");    
});
</script>

Résultat
Emulation de la console
Explication
La méthode sort() peut recevoir une fonction anonyme qui permet de trier les éléments grâce à un traitement particulier.
Ici, c'est utile car les éléments du tableau sont des objets.
Attention, la fonction anonyme retourne un nombre négatif, positif ou nul pour gérer le tri, pas un booléen.

Page en rapport
Le tutorial tableaux JavaScript
Page mise à jour le

Troisième édition Tout JavaScript chez Dunod

Tout JavaScript le livre chez DunodEn savoir plus
Sortie le 4 janvier 2023

Version papier 29€90
Format électronique 22€99.

Commandez en ligne

Chercher une fonction, un objet, ...

Le 19/04/2024 17:41:38 sur php 7 en 43.26 ms