JavaScript Rayon de propagation / repos


Exemple

Opérateur de diffusion

6

Avec ES6, vous pouvez utiliser des spreads pour séparer des éléments individuels dans une syntaxe séparée par des virgules:

let arr = [1, 2, 3, ...[4, 5, 6]];  // [1, 2, 3, 4, 5, 6]

// in ES < 6, the operations above are equivalent to
arr = [1, 2, 3];
arr.push(4, 5, 6);

L'opérateur de propagation agit également sur les chaînes, en séparant chaque caractère individuel en un nouvel élément de chaîne. Par conséquent, en utilisant une fonction de tableau pour les convertir en nombres entiers, le tableau créé ci-dessus est équivalent à celui ci-dessous:

let arr = [1, 2, 3, ...[..."456"].map(x=>parseInt(x))]; // [1, 2, 3, 4, 5, 6]

Ou, en utilisant une seule chaîne, cela pourrait être simplifié pour:

let arr = [..."123456"].map(x=>parseInt(x)); // [1, 2, 3, 4, 5, 6]

Si le mappage n'est pas effectué, alors:

let arr = [..."123456"]; // ["1", "2", "3", "4", "5", "6"]

L'opérateur de spread peut également être utilisé pour répartir des arguments dans une fonction :

function myFunction(a, b, c) { }
let args = [0, 1, 2];

myFunction(...args);

// in ES < 6, this would be equivalent to:
myFunction.apply(null, args);

Opérateur de repos

L'opérateur de repos fait le contraire de l'opérateur réparti en fusionnant plusieurs éléments en un seul

[a, b, ...rest] = [1, 2, 3, 4, 5, 6]; // rest is assigned [3, 4, 5, 6]

Recueillir des arguments d'une fonction:

function myFunction(a, b, ...rest) { console.log(rest); }

myFunction(0, 1, 2, 3, 4, 5, 6); // rest is [2, 3, 4, 5, 6]