Les tableaux
CHAPITRE 8
211
La classe Array() propose également d’autres options de tri :
• Array.CASEINSENSITIVE
• Array.UNIQUESORT
• Array.RETURNINDEXEDARRAY
• Array.NUMERIC
Enfin, si vous souhaitez trier les éléments d’un tableau dans l’ordre inverse, utilisez la
méthode reverse().
Filtrer un tableau
Avec la méthode filter() de la classe Array(), vous allez découvrir qu’il est possible de
générer un nouveau tableau sans être obligé de le parcourir à l’aide d’une boucle for()
accompagnée d’une structure conditionnelle.
Prenons l’exemple d’une liste de prénoms avec un préfixe propre à chaque pays (fr, it, es
et gb). Nous aimerions générer un nouveau tableau contenant seulement les noms français (ceux ayant pour préfixe fr), ce qui revient à filtrer le tableau.
var participants:Array = new Array("frFrançois","itLuna","frMarine","esJuan",
➥"gbDoglas","itGina","frMarc");
Nous commençons par créer un nouveau tableau qui contiendra les entrées filtrées.
var nomsFrancais:Array;
Nous le remplissons avec les éléments obtenus par la méthode filter(), qui contient le
nom de la fonction de rappel qui effectue le traitement approprié.
nomsFrancais=participants.filter(slectionFrancais);
Pour qu’un élément soit filtré et donc sélectionné, la fonction de rappel doit renvoyer la
valeur true pour l’élément concerné.
function slectionFrancais(nomEntree:*, index:int, arr:Array):Boolean {
return nomEntree.substr(0,2)=="fr";
}
Dans cet exemple, nous cherchons à savoir si les deux premières lettres d’une entrée sont
fr. Voici le script global.
var nomsFrancais:Array;
var participants:Array = new Array("frFrançois","itLuna","frMarine","esJuan",
➥"gbDoglas","itGina","frMarc");
nomsFrancais=participants.filter(slectionFrancais);
trace(nomsFrancais);
function slectionFrancais(nomEntree:*, index:int, arr:Array) {
return nomEntree.substr(0,2)=="fr";
}
Précédent

- 239/426

Suivant