JavaScript : Tableaux & objets
Manipuler des collections : accès, map / filter / reduce, objets clé-valeur, destructuration et spread. Le socle qu'on retrouve partout en React.
JavaScript : Tableaux & objets
Un programme passe son temps à manipuler des collections de données : une liste de projets, un utilisateur, une réponse d'API. En JavaScript, deux structures suffisent à tout représenter : les tableaux et les objets. Elles sont partout, et encore plus en React.
# Les tableaux
Un tableau (array) est une liste ordonnée de valeurs, entre crochets. On accède à un élément par son index, qui commence à zéro.
const fruits = ["pomme", "poire", "kiwi"];
fruits[0]; // "pomme"
fruits.length; // 3
fruits.push("figue"); // ajoute à la finconst fruits = ["pomme", "poire", "kiwi"]; fruits[0]; // "pomme"fruits.length; // 3fruits.push("figue"); // ajoute à la finQuelques méthodes utiles au quotidien :
| Méthode | Effet |
|---|---|
push / pop | Ajoute / retire à la fin |
unshift / shift | Ajoute / retire au début |
includes(x) | Vérifie la présence d'une valeur |
indexOf(x) | Position d'une valeur (ou -1) |
slice(a, b) | Extrait une portion (sans modifier l'original) |
# map, filter, reduce
Ce sont les trois méthodes les plus importantes. Elles ne modifient pas le tableau d'origine, elles en produisent un nouveau. C'est cette approche qu'on utilise sans arrêt en React.
map transforme chaque élément :
const nombres = [1, 2, 3];
const doubles = nombres.map((n) => n * 2); // [2, 4, 6]const nombres = [1, 2, 3];const doubles = nombres.map((n) => n * 2); // [2, 4, 6]filter garde les éléments qui passent un test :
const nombres = [1, 2, 3, 4];
const pairs = nombres.filter((n) => n % 2 === 0); // [2, 4]const nombres = [1, 2, 3, 4];const pairs = nombres.filter((n) => n % 2 === 0); // [2, 4]reduce agrège tout en une seule valeur :
const nombres = [1, 2, 3, 4];
const somme = nombres.reduce((total, n) => total + n, 0); // 10const nombres = [1, 2, 3, 4];const somme = nombres.reduce((total, n) => total + n, 0); // 10 En React, afficher une liste, c'est presque toujours un map qui transforme des données en composants. Maîtriser map et filter, c'est déjà être à l'aise avec le rendu de listes.
# Les objets
Un objet est une collection de paires clé-valeur, entre accolades. C'est ce qu'on utilise pour représenter une « chose » avec plusieurs propriétés.
const projet = {
nom: "Voyager3",
annee: 2025,
actif: true,
};
projet.nom; // "Voyager3" (notation par point)
projet["annee"]; // 2025 (notation par crochets)
projet.actif = false; // on modifie une propriété
projet.stack = "Podman"; // on en ajoute une nouvelleconst projet = { nom: "Voyager3", annee: 2025, actif: true,}; projet.nom; // "Voyager3" (notation par point)projet["annee"]; // 2025 (notation par crochets)projet.actif = false; // on modifie une propriétéprojet.stack = "Podman"; // on en ajoute une nouvelleUne valeur d'objet peut être n'importe quoi : un nombre, une chaîne, un tableau, ou même un autre objet. C'est comme ça qu'on représente des données structurées (par exemple une réponse JSON d'API).
# La destructuration
La destructuration (destructuring) permet d'extraire des valeurs d'un objet ou d'un tableau en une seule ligne. C'est très courant en React, notamment pour lire les props.
// Sur un objet
const projet = { nom: "Voyager3", annee: 2025 };
const { nom, annee } = projet;
// nom vaut "Voyager3", annee vaut 2025
// Sur un tableau
const [premier, second] = ["pomme", "poire"];
// premier vaut "pomme", second vaut "poire"// Sur un objetconst projet = { nom: "Voyager3", annee: 2025 };const { nom, annee } = projet;// nom vaut "Voyager3", annee vaut 2025 // Sur un tableauconst [premier, second] = ["pomme", "poire"];// premier vaut "pomme", second vaut "poire"Tu reconnaîtras la syntaxe : un composant React comme function Salutation({ nom }) déstructure justement la prop nom de son objet de props.
# Le spread (...)
L'opérateur spread (...) « étale » le contenu d'un tableau ou d'un objet. On l'utilise surtout pour copier ou fusionner sans modifier l'original.
// Copier / fusionner des tableaux
const a = [1, 2];
const b = [...a, 3, 4]; // [1, 2, 3, 4]
// Copier / mettre à jour un objet
const projet = { nom: "Voyager3", actif: true };
const majProjet = { ...projet, actif: false };
// { nom: "Voyager3", actif: false }// Copier / fusionner des tableauxconst a = [1, 2];const b = [...a, 3, 4]; // [1, 2, 3, 4] // Copier / mettre à jour un objetconst projet = { nom: "Voyager3", actif: true };const majProjet = { ...projet, actif: false };// { nom: "Voyager3", actif: false }Ce réflexe de ne pas modifier l'original mais d'en créer une copie modifiée s'appelle l'immutabilité. C'est un principe central en React : on ne mute pas le state, on le remplace par une nouvelle version.
# À retenir
- Un tableau est une liste ordonnée (
[]), accessible par index à partir de zéro. map,filteretreducetransforment un tableau sans le modifier. Ce sont les outils du quotidien, et le cœur du rendu de listes en React.- Un objet est une collection de paires clé-valeur (
{}), idéale pour des données structurées. - La destructuration et le spread (
...) rendent le code plus lisible et encouragent l'immutabilité, un principe clé de React.
Prochaine étape : comprendre comment JavaScript communique avec la page grâce au DOM.