« Programmation JavaScript/Références/Objets/Array » : différence entre les versions

Contenu supprimé Contenu ajouté
Gmarzin (discussion | contributions)
Aucun résumé des modifications
Gmarzin (discussion | contributions)
mAucun résumé des modifications
Ligne 1 :
{{Programmation JavaScript}}
{{Navigation Prec Suiv|Références/Objets|}}
 
===Caractéristiques===
Ligne 210 :
====Trier le tableau====
=====sort()=====
Prévue en standard pour trier des chaînes alphanumériques, la méthode '''sort''' est capable de bien plus grâce au mécanisme de fonction de comparaison externe.<br/>
En effet, en programmant judicieusement cette fonction, vous pouvez trier des nombres, des dates, ou même des objets abstraits.
{{Cadre méthode|sort( [ comparateur() ] )|
Effectue le tri du tableau. Selon le mode désiré, il peut être nécessaire de définir une fonction de comparaison, et la transmettre en argument.|
Ligne 215 ⟶ 217 :
Tri en mode numérique : Une fonction de comparaison|
Aucun|
}}
 
1er exemple : fonction de tri ascendant définie à part, appelée ensuite par son nom dans la fonction '''sort'''.
{{Cadre code|tri ascendant|
<pre>
function pour_tri_ascendant(n1, n2))
{
return (n1 - n2); // Retourne positif si n1 > n2, négatif ou nul si n1 < n2
}
 
t = new Array(1,3,2);
t.sort(pour_tri_ascendant);
alert(t.join(",")); // Affiche "1,2,3"
</pre>
}}
 
2eme exemple : fonction de tri descendante.
{{Cadre code|tri descendant|
<pre>
function pour_tri_descendant(n1, n2))
{
return (n2 - n1); // Retourne positif si n1 < n2, négatif ou nul si n1 > n2
}
 
t = new Array(1,3,2);
t.sort(pour_tri_descendant);
alert(t.join(",")); // Affiche "3,2,1"
</pre>
}}
 
3eme exemple : Intégration d'un fonction anonyme directement définie dans le paramètre.
{{Cadre code|fonction intégrée|
<pre>
t = new Array(1,3,2);
t.sort( function(n1,n2) { return n1-n2; } );
alert(t.join(",")); // Affiche "1,2,3"
</pre>
}}
 
 
4eme exemple : tri d'une notion abstraite (petit moyen grand).
{{Cadre code|tri abstrait|
<pre>
function compare_taille(s1,s2)
{
if (s1=="petit") return -1;
if (s1=="moyen")
{
if (s2=="petit") return 1;
else return -1;
}
if (s1=="grand") return 1;
return 0; // Egalité
}
 
t = new Array("petit","grand","moyen","grand","petit","moyen");
t.sort( compare_taille);
alert(t.join(",")); // // Affiche "petit,petit,moyen,moyen,grand,grand"
</pre>
}}