Spread Operator

Le spread operator permet de copier, fusionner ou séparer des données facilement.

Il utilise la syntaxe :

...

Le spread operator est très utilisé dans le JavaScript moderne.

1. Copier un tableau

Le spread operator peut copier un tableau.

const fruits = ["apple", "banana"];

const copy = [...fruits];

console.log(copy);

Spread Array

> ["apple", "banana"]

2. Sans spread operator

Sans spread, deux variables peuvent pointer vers le même tableau.

const fruits = ["apple", "banana"];

const copy = fruits;

copy.push("orange");

console.log(fruits);

Ici, le tableau original est modifié.

3. Éviter la mutation

Le spread operator aide à éviter la mutation des données.

const fruits = ["apple", "banana"];

const newFruits = [...fruits, "orange"];

console.log(fruits);

console.log(newFruits);

Le tableau original reste intact.

4. Fusionner des tableaux

Plusieurs tableaux peuvent être fusionnés.

const fruits = ["apple", "banana"];

const vegetables = ["carrot", "potato"];

const foods = [...fruits, ...vegetables];

console.log(foods);

5. Ajouter des éléments

Le spread operator peut ajouter des valeurs facilement.

const numbers = [2, 3];

const result = [1, ...numbers, 4];

console.log(result);

Add values

> [1, 2, 3, 4]

6. Spread avec les objets

Le spread operator fonctionne aussi avec les objets.

const user = {

    name: "Fred",
    age: 22

};

const copy = {

    ...user

};

console.log(copy);

7. Fusionner des objets

const user = {

    name: "Fred"

};

const details = {

    age: 22

};

const profile = {

    ...user,
    ...details

};

console.log(profile);

Ici, les propriétés des deux objets sont fusionnées.

8. Remplacer une propriété

Une propriété peut être remplacée facilement.

const user = {

    name: "Fred",
    age: 22

};

const updatedUser = {

    ...user,
    age: 33

};

console.log(updatedUser);

9. Spread dans une fonction

Le spread operator peut transmettre plusieurs valeurs à une fonction.

function add(a, b, c) {

    return a + b + c;

}

const numbers = [1, 2, 3];

console.log(add(...numbers));

Function spread

> 6

10. Spread vs rest operator

Le spread operator et le rest operator utilisent la même syntaxe :

...

Cependant, leur rôle est différent.

Concept Rôle
Spread Séparer des valeurs
Rest Regrouper des valeurs

11. Exemple de rest operator

function total(...numbers) {

    console.log(numbers);

}

total(1, 2, 3);

Ici, toutes les valeurs sont regroupées dans un tableau.

12. Spread et destructuring

Le spread operator est souvent utilisé avec le destructuring.

const numbers = [1, 2, 3];

const [first, ...rest] = numbers;

console.log(first);

console.log(rest);

Destructuring + spread

> 1

> [2, 3]

13. Pourquoi utiliser le spread operator

14. Erreur fréquente

Le spread operator crée une copie superficielle.

const user = {

    name: "Fred",

    address: {

        city: "Montreal"

    }

};

const copy = {

    ...user

};

Les objets imbriqués restent partagés.

15. Bonnes pratiques

Résumé rapide

Concept Utilité
... Spread syntax
[...array] Copier un tableau
{...object} Copier un objet
Fusion Combiner plusieurs structures
Mutation Modifier une donnée existante
Rest operator Regrouper des valeurs
Destructuring Extraire des valeurs