Maîtriser la Méthode Reduce en JavaScript : Guide Complet
14/05/2025 • Melvynx
La fonction reduce()
en JavaScript : Un guide complet
La méthode reduce()
en JavaScript est un outil puissant pour transformer un tableau en une seule valeur. Que tu cherches à calculer une somme, aplatir un tableau ou même effectuer des transformations complexes, reduce()
est là pour toi. Dans cet article, nous allons explorer comment utiliser cette fonction de manière efficace et optimisée.
reduce()
?La méthode reduce()
est utilisée pour appliquer une fonction d'accumulation sur les éléments d'un tableau, réduisant ainsi le tableau à une seule valeur. Elle est essentielle dans la programmation fonctionnelle et permet de réaliser des opérations variées comme la somme, la multiplication, et bien plus encore.
reduce()
Voici la syntaxe de base :
array.reduce(callback(accumulateur, valeurCourante[, index[, array]]), [valeurInitiale]);
callback
.reduce()
est appelé.reduce()
?reduce()
parcourt le tableau de gauche à droite, appliquant la fonction callback
sur chaque élément. Si une valeurInitiale
est fournie, elle est utilisée comme valeur initiale de l'accumulateur. Sinon, le premier élément du tableau est utilisé, et l'itération commence au deuxième élément.
const nombres = [1, 2, 3, 4, 5];
const somme = nombres.reduce(
(accumulateur, valeurCourante) => accumulateur + valeurCourante,
0,
);
console.log(somme); // Affiche 15
Dans cet exemple, chaque élément est ajouté à l'accumulateur, commençant avec une valeurInitiale
de 0.
const nombres = [1, 2, 3, 4, 5];
const produit = nombres.reduce(
(accumulateur, valeurCourante) => accumulateur * valeurCourante,
1,
);
console.log(produit); // Affiche 120
const tableaux = [
[0, 1],
[2, 3],
[4, 5],
];
const aplati = tableaux.reduce(
(accumulateur, valeurCourante) => accumulateur.concat(valeurCourante),
[],
);
console.log(aplati); // Affiche [0, 1, 2, 3, 4, 5]
const fruits = ["pomme", "banane", "pomme", "orange", "banane", "pomme"];
const comptage = fruits.reduce((accumulateur, valeurCourante) => {
accumulateur[valeurCourante] = (accumulateur[valeurCourante] || 0) + 1;
return accumulateur;
}, {});
console.log(comptage); // Affiche { pomme: 3, banane: 2, orange: 1 }
const personnes = [
{ nom: "Alice", age: 25 },
{ nom: "Bob", age: 25 },
{ nom: "Charlie", age: 30 },
{ nom: "David", age: 30 },
{ nom: "Eve", age: 35 },
];
const groupesParAge = personnes.reduce((accumulateur, personne) => {
const { age } = personne;
if (!accumulateur[age]) {
accumulateur[age] = [];
}
accumulateur[age].push(personne);
return accumulateur;
}, {});
console.log(groupesParAge);
// Affiche :
// {
// '25': [ { nom: 'Alice', age: 25 }, { nom: 'Bob', age: 25 } ],
// '30': [ { nom: 'Charlie', age: 30 }, { nom: 'David', age: 30 } ],
// '35': [ { nom: 'Eve', age: 35 } ]
// }
Il est crucial de noter que si le tableau est vide et qu'aucune valeurInitiale
n'est fournie, reduce()
lèvera une exception TypeError
. Pour éviter cela, assure-toi de toujours fournir une valeurInitiale
ou de vérifier que le tableau n'est pas vide.
Bien que reduce()
soit puissant, une utilisation excessive peut rendre le code moins lisible. Utilise-le judicieusement pour maintenir la clarté du code.
La méthode reduce()
est un outil essentiel pour effectuer des opérations complexes sur les tableaux de manière fonctionnelle et déclarative. En maîtrisant reduce()
, tu pourras écrire un code JavaScript plus propre, efficace et facile à maintenir.
Pour approfondir tes connaissances en JavaScript, n'hésite pas à consulter notre Formation JavaScript et d'autres articles sur notre blog, comme Comment utiliser le localStorage avec Next.js ou Guide sur Fetch en JavaScript : Pas besoin d'Axios.
Prêt à transformer tes compétences en JavaScript ? Découvre notre Formation React pour aller encore plus loin !