Tableau Javascript réduit ()

La méthode JavaScript Array reduction () exécute une fonction de réduction sur chaque élément du tableau et renvoie une valeur de sortie unique.

La syntaxe de la reduce()méthode est:

 arr.reduce(callback(accumulator, currentValue), initialValue)

Ici, arr est un tableau.

Paramètres de réduction ()

La reduce()méthode prend en compte:

  • callback - La fonction à exécuter sur chaque élément du tableau (sauf le premier élément si aucune valeur initiale n'est fournie). Il prend en
    • accumulator - Il accumule les valeurs de retour du rappel.
    • currentValue - L'élément actuel transmis depuis le tableau.
  • initialValue (facultatif) - Une valeur qui sera transmise au callback()premier appel. S'il n'est pas fourni, le premier élément agit comme accumulateur lors du premier appel et callback()ne s'exécutera pas dessus.

Remarque: L' appel reduce()sur un tableau vide sans initialValue lancera TypeError.

Valeur renvoyée par réduire ()

  • Renvoie la valeur unique résultant de la réduction du tableau.

Remarques :

  • reduce() exécute la fonction donnée pour chaque valeur de gauche à droite.
  • reduce() ne modifie pas la matrice d'origine.
  • Il est presque toujours plus sûr de fournir initialValue.

Exemple 1: Somme de toutes les valeurs du tableau

 const numbers = (1, 2, 3, 4, 5, 6); function sum_reducer(accumulator, currentValue) ( return accumulator + currentValue; ) let sum = numbers.reduce(sum_reducer); console.log(sum); // 21 // using arrow function let summation = numbers.reduce( (accumulator, currentValue) => accumulator + currentValue ); console.log(summation); // 21

Production

 21 21

Exemple 2: soustraction de nombres dans un tableau

 const numbers = (1800, 50, 300, 20, 100); // subtract all numbers from first number // since 1st element is called as accumulator rather than currentValue // 1800 - 50 - 300 - 20 - 100 let difference = numbers.reduce( (accumulator, currentValue) => accumulator - currentValue ); console.log(difference); // 1330 const expenses = (1800, 2000, 3000, 5000, 500); const salary = 15000; // function that subtracts all array elements from given number // 15000 - 1800 - 2000 - 3000 - 5000 - 500 let remaining = expenses.reduce( (accumulator, currentValue) => accumulator - currentValue, salary ); console.log(remaining); // 2700

Production

 1330 2700

Cet exemple explique clairement la différence entre passer un initialValue et ne pas passer un initialValue.

Exemple 3: supprimer les éléments en double du tableau

 let ageGroup = (18, 21, 1, 1, 51, 18, 21, 5, 18, 7, 10); let uniqueAgeGroup = ageGroup.reduce(function (accumulator, currentValue) ( if (accumulator.indexOf(currentValue) === -1) ( accumulator.push(currentValue); ) return accumulator; ), ()); console.log(uniqueAgeGroup); // ( 18, 21, 1, 51, 5, 7, 10 )

Production

 (18, 21, 1, 51, 5, 7, 10)

Exemple 4: Regroupement d'objets par propriété

 let people = ( ( name: "John", age: 21 ), ( name: "Oliver", age: 55 ), ( name: "Michael", age: 55 ), ( name: "Dwight", age: 19 ), ( name: "Oscar", age: 21 ), ( name: "Kevin", age: 55 ), ); function groupBy(objectArray, property) ( return objectArray.reduce(function (accumulator, currentObject) ( let key = currentObject(property); if (!accumulator(key)) ( accumulator(key) = (); ) accumulator(key).push(currentObject); return accumulator; ), ()); ) let groupedPeople = groupBy(people, "age"); console.log(groupedPeople);

Production

 ('19': ((nom: 'Dwight', âge: 19)), '21': ((nom: 'John', âge: 21), (nom: 'Oscar', âge: 21)), ' 55 ': ((nom:' Oliver ', âge: 55), (nom:' Michael ', âge: 55), (nom:' Kevin ', âge: 55)))

Lecture recommandée: JavaScript Array ReduceRight ()

Articles intéressants...