Créer et manipuler des groupes ordonnés de valeurs
Un tableau est une collection ordonnée de valeurs que l'on manipuler.
const nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const prenoms = ['Romain', 'Jeanne', 'Malik', 'Satsuki'];
Un tableau peut contenir des choses de types différents, mais c'est considéré comme une mauvaise pratique.
const bordel = [1, 'Jeanne', true, () => {}, {}, []];
- on peut accéder à l'élément
n
d'un tableau avectableau[n-1]
- sa longueur
est
tableau.length
- on peut vérifier si un tableau contient un élément avec
tableau.includes(valeur)
const prenoms = ['Romain', 'Jeanne', 'Malik', 'Satsuki'];
prenoms[0]; // Romain
prenoms.length; // 4
prenoms[prenoms.length - 1]; // Satsuki
prenoms.includes('Malik'); // true
Sous le capot, un tableau est en réalité un objet particulier.
On peut ajouter un élément à un tableau avec
.push()
, pour le mettre à la fin.unshift()
, pour le mettre au début
const array = [1, 2, 3];
array.push(23); // [1, 2, 3, 23]
array.unshift(443); // [443, 1, 2, 3, 23]
On peut supprimer un élément d'un tableau avec
.pop()
, pour l'enlever à la fin.shift()
, pour l'enlever au début
On récupère alors l'élément supprimé.
const array = [1, 2, 3];
const a = array.pop(); // a vaut 3, et array vaut [1, 2]
const b = array.shift(); // b vaut 1, et array vaut [2]
Il est aussi possible d'ajouter ou supprimer à des positions précises dans le tableau, mais c'est un peu plus complexe.
Il est possible de trier un tableau.
const array = [7, 3, 6, 2];
array.sort(); // [2, 3, 6, 7]
Attention: le .sort()
par défaut trie par ordre alphanumérique.
Dans tous les cas, que l'on ajoute ou supprime une valeur d'un tableau, la position du tableau dans l'univers n'a pas changé, même si son "contenu" a changé.
.sort()
permet aussi de trier des valeurs plus complexes que des simples nombres.
Il existe plusieurs d'autres méthodes pour manipuler un tableau ou obtenir des infos sur un tableau.
Parfois on a des tableaux imbriqués. On peut "aplatir" un tableau sur un niveau avec .flat()
.
const tableau = [[1, 2], 3, [4, 5]];
const tableauAplati = tableau.flat(); // [1, 2, 3, 4, 5]
.flat()
crée un nouveau tableau, et ne modifie pas le tableau d'origine.
Il y a plusieurs manières d'itérer sur un tableau.
const array = [1, 2, 3];
// avec une boucle for classique
for (let i = 0; i < array.length; i++) {
console.log(array[i]);
}
// avec une boucle for...of
for (let element of array) {
console.log(element);
}
// avec des méthodes fonctionelles
array.forEach(function (element) {
console.log(element);
});
En termes de temps d'exécution, la boucle for
classique sera la plus rapide. Mais elle est également très verbeuse et dure à maintenir.
En Javascript moderne, il est courant d'utiliser les méthodes fonctionnelles des tableaux pour itérer.
- Un tableau est une liste ordonnées de valeurs
- Les valeurs d'un même tableau peuvent être de types différents, même si ce n'est pas recommandé
- Un tableau commence à l'indice 0, l'élément
n
est accessible avecarray[n-1]
- On peut modifier un tableau avec
.pop()
,.push()
,.shift()
,.unshift()
,.sort()
- On peut itérer sur un tableau avec des boucles
for
oufor of
- Ouvrir le dossier
/exos/1_syntax/1-5_arrays
- Ouvrir le fichier
index.html
dans votre navigateur - Suivre les indications du fichier
.js
, et vérifier les résultats dans votre navigateur