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 existedeux 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 un projet web, créez un fichier arrays.js et reliez-la à votre fichier index.html. Réalisez les 5 exercices dans ce fichier.
Exercice #1 - Parcourir un tableau
- Déclare un tableau
nomscontenant 5 prénoms. - Ajoute un prénoms au début et à la fin du tableau.
- Affiche 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ée un tableau
notescontenant les valeurs suivantes :[85, 42, 67, 90, 58, 73] - Utilise la méthode
.filter()pour créer un nouveau tableaunotesReussiesqui contient seulement les notes supérieures ou égales à 60. - Affiche le résultat dans la console.
- Affiche 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.
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.
Astuce
Pour accéder aux propriétés d'un objet: