Opérateurs ternaires
Notions théoriques
L'opérateur ternaire est une forme concise d'écrire des instructions conditionnelles.
Il est appelé "ternaire" parce qu'il utilise 3 opérandes :
- une condition,
- une expression à évaluer si la condition est vraie,
- et une autre expression à évaluer si la condition est fausse.
La syntaxe de l'opérateur ternaire est la suivante :
condition ? expressionSiVrai : expressionSiFaux;
Par exemple, si vous voulez assigner une valeur à une variable en fonction d'une condition, vous pouvez utiliser l'opérateur ternaire de cette manière :
let age = 20;
let estMajeur = (age >= 18) ? "Oui" : "Non";
console.log(estMajeur); // Affiche "Oui"
Exemple pratique
let note = 12;
let mention = (note >= 16) ? "Très bien" : (note >= 14) ? "Bien" : (note >= 12) ? "Assez bien" : "Moyen";
console.log(mention); // Affiche "Assez bien"
Rappel de méthodes à connaître
-
map() : Cette méthode crée un nouveau tableau avec les résultats de l'appel d'une fonction pour chaque élément du tableau.
-
filter() : Cette méthode crée un nouveau tableau avec tous les éléments qui passent le test implémenté par la fonction fournie.
TP simple pour s'entrainer à utiliser les méthodes map()
et filter()
Tri et transformation d'un tableau
-
Créez un tableau
nombres
qui contient les nombres de 1 à 10.let nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
-
Utilisez la méthode
map()
pour créer un nouveau tableaunombresCarres
qui contient le carré de chaque nombre.Sous la forme
let nombresCarres = nombres.map(...);
-
Utilisez la méthode
filter()
pour créer un nouveau tableaunombresPairs
qui contient seulement les nombres pairs denombresCarres
.Sous la forme
let nombresPairs = nombresCarres.filter(...);
- Affichez le tableau
nombres
, le tableaunombresCarres
et le tableaunombresPairs
sur la console.
Une solution
Vous devez être connecté pour voir le contenu.
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Dans ce TP, nous allons utiliser l'opérateur ternaire pour filtrer des éléments d'un tableau.
-
Créez un tableau
notes
qui contient 10 notes entre 1 et 20.Une solution
let notes = [12, 15, 10, 16, 14, 13, 17, 15, 18, 11];
-
Utilisez la méthode
map
pour créer un nouveau tableaumentions
qui contient les 10 appréciations du prof correspondants à chacune des notes.Utilisez l'opérateur ternaire pour déterminer l'appréciation du prof.
Puis affichez le contenu du tableau des appréciations avec l'instruction
console.log(mentions);
Une solution
let mentions = notes.map(note => (note >= 16) ? "Très bien" : (note >= 14) ? "Bien" : (note >= 12) ? "Assez bien" : "Moyen");
console.log(mentions); // Affiche ["Assez bien", "Bien", "Moyen", "Très bien", "Bien", "Assez bien", "Très bien", "Bien", "Très bien", "Moyen"]
-
Utilisez la méthode
filter
pour créer un nouveau tableaunotesAvecMention
qui contient seulement les notes qui ont une mention.Puis affichez le contenu du tableau des notes qui ont une mention avec l'instruction
console.log(notesAvecMention);
Une solution
let notesAvecMention = notes.filter(note => note >= 12);
console.log(notesAvecMention); // Affiche [12, 15, 16, 14, 13, 17, 15, 18]
Le programme complet
let notes = [12, 15, 10, 16, 14, 13, 17, 15, 18, 11];
let mentions = notes.map(note => (note >= 16) ? "Très bien" : (note >= 14) ? "Bien" : (note >= 12) ? "Assez bien" : "Moyen");
console.log(mentions); // Affiche ["Assez bien", "Bien", "Moyen", "Très bien", "Bien", "Assez bien", "Très bien", "Bien", "Très bien", "Moyen"]
let notesAvecMention = notes.filter(note => note >= 12);
console.log(notesAvecMention); // Affiche [12, 15, 16, 14, 13, 17, 15, 18]