JavaScript - 7.4 L'opérateur de repos en JavaScript
L'opérateur de repos permet de recevoir un nombre variable d'arguments dans une fonction moderne. Il s'écrit avec trois petits points devant le nom du paramètre, et il rassemble tous les arguments restants dans un tableau. Cette leçon montre comment l'utiliser, avec un exemple de calcul de total, et pourquoi il doit être le dernier paramètre.
Rassembler les arguments dans un tableau
On ajoute un paramètre précédé de trois petits points, par exemple ...nombres. Dans la fonction, ce paramètre contient un tableau de tous les arguments passés.
Il ne faut pas confondre l'opérateur de repos avec l'opérateur d'étalement, qui s'écrit de la même façon. L'opérateur d'étalement déploie les éléments d'un tableau, alors que l'opérateur de repos les rassemble.
Calculer une somme avec reduce
Une fois les arguments rassemblés dans un tableau, la méthode reduce permet d'obtenir une somme. Elle reçoit une fonction qui additionne deux valeurs à la fois, jusqu'à obtenir un seul résultat.
Cette écriture remplace la déclaration d'une variable total et la boucle sur l'objet arguments. Elle est plus courte et plus lisible.
function somme(...nombres) {
return nombres.reduce((a, b) => a + b);
}
console.log(somme(1, 2, 3, 4, 5));
Calculer le total d'un panier avec une remise
Dans l'exemple suivant, le premier paramètre est le taux de remise, et les prix sont rassemblés par l'opérateur de repos. Le total des prix est calculé avec reduce, puis multiplié par 1 moins la remise pour obtenir le prix final.
Le paramètre de repos doit être le dernier de la liste. Si un paramètre est ajouté après lui, JavaScript génère une erreur. Les paramètres placés avant, comme la remise, restent autorisés.
function calculerTotal(remise, ...prix) {
const total = prix.reduce((a, b) => a + b);
return total * (1 - remise);
}
En résumé
L'opérateur de repos, écrit avec trois petits points, rassemble les arguments restants d'une fonction dans un tableau. Il offre une alternative moderne à l'objet arguments. Il doit toujours être le dernier paramètre. La méthode reduce permet ensuite de calculer une somme ou un total à partir de ce tableau.
Points clés
- L'opérateur de repos s'écrit avec trois petits points devant un paramètre.
- Il rassemble les arguments restants dans un tableau.
- Il ne faut pas le confondre avec l'opérateur d'étalement.
- Il doit être le dernier paramètre de la fonction.
- La méthode reduce permet de calculer une somme à partir de ce tableau.
Questions fréquentes
Quelle est la différence avec l'objet arguments ?
L'objet arguments n'est pas un tableau, alors que l'opérateur de repos crée un vrai tableau. On peut donc utiliser directement les méthodes des tableaux, comme reduce.
Peut-on mettre des paramètres après l'opérateur de repos ?
Non. Le paramètre de repos doit être le dernier. Des paramètres placés avant, comme un taux de remise, sont en revanche possibles.
Quelle est la différence avec l'opérateur d'étalement ?
Les deux s'écrivent avec trois petits points. L'opérateur d'étalement déploie les éléments d'un tableau, et l'opérateur de repos les rassemble dans un tableau.