codelynx.dev
🇫🇷🇬🇧

Retour 14/05/2025

Maîtriser la Méthode Reduce en JavaScript : Guide Complet

Écris par Melvyn Malherbe le 14/05/2025


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.

Qu'est-ce que la méthode 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.

Syntaxe de reduce()

Voici la syntaxe de base :

JAVASCRIPT
array.reduce(callback(accumulateur, valeurCourante[, index[, array]]), [valeurInitiale]);
  • callback : Fonction exécutée sur chaque élément du tableau.
    • accumulateur : Valeur retournée par le dernier appel de callback.
    • valeurCourante : Élément actuel du tableau.
    • index (facultatif) : Indice de l'élément actuel.
    • array (facultatif) : Tableau sur lequel reduce() est appelé.
  • valeurInitiale (facultatif) : Valeur initiale de l'accumulateur.

Comment fonctionne 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.

Exemple de base : Calculer la somme

JAVASCRIPT
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.

Cas d'utilisation courants

Calculer le produit des éléments

JAVASCRIPT
const nombres = [1, 2, 3, 4, 5];
const produit = nombres.reduce((accumulateur, valeurCourante) => accumulateur * valeurCourante, 1);
console.log(produit); // Affiche 120

Aplatir un tableau de tableaux

JAVASCRIPT
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]

Compter les occurrences d'éléments

JAVASCRIPT
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 }

Grouper des objets par une propriété

JAVASCRIPT
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 } ]
// }

Précautions d'utilisation

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.

Conclusion

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 !

BeginJavaScript

Cours JavaScript gratuit

Accède à des exercices, des vidéos et bien plus sur JavaScript dans la formation "BeginJavaScript" 👇