Les tableaux¶
Un tableau est une structure de données qui permet de stocker plusieurs valeurs dans une seule variable. Chaque valeur a une position appelée index qui commence à 0.
Déclaration¶
Il existe deux syntaxes pour céer un tableau vide, la deuxième étant la plus utilisée :
Il n'est pas nécessaire de déterminer la taille du tableau lors de sa déclaration. Tout comme les variables on peut déclarer le tableau et ensuite lui assigner des valeurs sur la même ligne.
Les éléments du tableau¶
On peut ajouter n'importe quel type de données dans un tableau, mais je vous conseille de toujours vous en tenir à un type par tableau.
let tableauString = ["un", "deux", "trois"];
let tableauInteger = [1, 2, 3];
let tableauObjet = [
{nom: "Fréchette", prenom: "Mathieu"},
{nom: "Taleb", prenom: "Frédérik"},
{nom: "Mercier", prenom: "François"},
];
Accéder à un élément du tableau
On va utiliser l'index de l'élément pour le récupérer :
Si l’indice n’existe pas, JavaScript retourne undefined;
Modifier la valeur d'un élément
On peut modifier un élément comme on le ferais avec une variable
Ajouter un élément dans le tableau
Ajouter à la fin du tableau avec array.push():
fruits.push("Kiwi");
fruits.push("Fraise", "Bleuet"); // On peut ajouter plus d'un élément à la fois
Ajouter au début avec array.unshift():
Supprimer un élément du tableau
Supprimer le dernier élément avec array.pop():
Supprimer le premier élément avec array.shift():
Récupérer le nombre d'éléments d'un tableau
let professeurs = ["Mathieu", "Frédérick" ,"François", "Simon"];
console.log(professeurs.length); // 4
// On peut se servir de length pour récupérer le dernier élément sans
// connaître son index
console.log(professeurs[professeurs.length - 1]); // Simon
Parcourir un tableau¶
Avec une boucle for:
let fruits = ["Pomme", "Orange", "Poire"];
for (let i = 0; i < fruits.length; i++) {
// Affiche chaque item du tableau à la console
console.log(fruits[i]);
}
Avec une boucle for..of:
Avec array.forEach():
Dans cet exemple fruit est une variable accessible uniquement dans la boucle et qui représente l'élément de l'itération (c'est la même chose que de faire fruits[i] avec une boucle for).
Opération sur les tableaux¶
Voici quelques opérations plus avancés sur les tableaux. Elles utilisent tous une fonction de callback comme paramètre.
array.find()
Pour trouver le premier élément du tableau correspondant à une condition.
let ages = [18, 21, 43, 25, 20];
let resultat = ages.find((age) => age > 40);
console.log(resultat); // 43
array.filter()
Retourne un nouveau tableau contenant tous les éléments du tableau d'origine qui remplissent une condition.
let professeurs = ["Mathieu", "Frédérick" ,"François", "Simon"];
const nouveauTableau = professeurs.filter((prof) => {
return prof.length >= 8;
});
console.log(nouveauTableau); // ["Frédérick", "François"]
array.map()
Retourne un nouveau tableau en modifiant tous les éléments du tableau d'origine selon la fonction fournie.
let nombres = [1, 2, 3, 4];
let double = nombres.map((nombre) => {
return nombre * 2;
});
console.log(double); // [2, 4, 6, 8]
Exercices¶
- Dans le répertoire js votre projet exercices_js, ajoutez et liez le un fichier array.js.
- Commentez les liens vers les autres fichiers de script des exercices précédents.
- Réalisez les exercices suivants dans un fichier JS
Exercice #1 - Parcourir un tableau
- Déclarez un tableau
nomscontenant 5 prénoms. - Ajoutez un prénoms au début et à la fin du tableau.
- Affichez chaque prénom dans la console à l’aide :
- d'une boucle
for - d'une boucle
for..of - d'une boucle
array.forEach()
- d'une boucle
Exercice #2 - Filtrer un tableau
- Créez un tableau
notescontenant les valeurs suivantes :[85, 42, 67, 90, 58, 73] - Utilisez la méthode
.filter()pour créer un nouveau tableaunotesReussiesqui contient seulement les notes supérieures ou égales à 60. - Affichez le résultat dans la console.
- Affichez le dernier élément du tableau
notesReussiesen utilisantlength.
Exercice #3 - Transformer un tableau
- Crée un tableau
prixcontenant les valeurs suivantes (en dollars) :[10, 25, 30, 5, 15] - Utilise
.map()pour créer un nouveau tableauprixTaxesqui contient le prix avec une taxe de 15% ajoutée. - Affiche les deux tableaux (
prixetprixTaxes).
Exercice 4 - Combiner filter() et map()
- Crée un tableau
nombrescontenant :[2, 5, 8, 11, 14, 17] - Utilise
.filter()pour garder seulement les nombres pairs. - Puis, applique
.map()pour multiplier ces nombres par 3. - Affiche le tableau final qui devrait être
[6, 24, 42].
Exercice 5 - Tableau d'objets
Selon le tableau d'objets suivant :
let produits = [
{ nom: "Chocolat", prix: 3 },
{ nom: "Chips", prix: 2 },
{ nom: "Café", prix: 8 },
{ nom: "Pain", prix: 4 }
];
- Utilise
.filter()pour créer un tableauproduitsAbordablescontenant seulement les produits dont le prix est inférieur à 5. - Utilise
.map()surproduitsAbordablespour créer un nouveau tableau qui contient seulement les noms des produits. - Affiche le résultat final. Utilisez
console.table()pour afficher le contenu deproduitsAbordablesetconsole.log()pour le 2e tableau.
Astuce
Pour accéder aux propriétés d'un objet:
- Quand vous aurez terminé l'exercice, créez un commit nommé "Exercices tableaux" et envoyez-le sur GitHub (git push)