Maison > interface Web > js tutoriel > le corps du texte

Comment appliquer une fonction à chaque clé d'un accumulateur et d'un objet en JavaScript ?

王林
Libérer: 2023-08-25 17:33:06
avant
1404 Les gens l'ont consulté

如何在 JavaScript 中对累加器和对象的每个键应用函数?

En JavaScript, on peut utiliser la méthode réduire() pour appliquer une fonction à l'accumulateur et à chaque touche de l'objet (de gauche à droite). La méthode

reduce() prend un tableau et accepte une fonction de rappel comme premier argument. Voir array réduire() pour plus de détails. Jetons un coup d'œil à la syntaxe de cette méthode.

Syntaxe

array array.reduce(callback[, initialValue]);
Copier après la connexion

Parameters

  • Callback - Fonction exécutée sur chaque valeur du tableau.

  • < li>

    initialValue - L'objet utilisé comme premier paramètre du premier rappel.

Callback< /strong> Quatre paramètres sont transmis à la fonction

  • Le premier paramètre est l'accumulateur, qui est le résultat de l'appel précédent de la fonction de rappel, ou la valeur initiale s'il s'agit du premier appel.

  • Le deuxième paramètre est la clé en cours de traitement.

  • Le troisième paramètre est la clé en cours de traitement. La valeur en cours de traitement.

  • Le quatrième paramètre est l'index en cours de traitement.

Ensuite, la méthode réduire() renvoie l'accumulateur.

Application de la méthode réduire()

Regardons un exemple simple pour comprendre comment fonctionne la méthode réduire().

Nous avons un tableau d'objets, chaque objet a un nom et une propriété de valeur. Nous utilisons la méthode réduire() pour additionner les valeurs.

Nous pouvons le faire en passant une fonction de rappel qui reçoit l'accumulateur (le résultat de l'appel de fonction de rappel précédent) et la valeur actuelle à gérer. La fonction de rappel renvoie ensuite l'accumulateur plus la valeur actuelle.

Exemple

<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      let arr = [{ name: "John", value: 5 }, { name: "Jane", value: 7 }, { name: "Jim", value: 3 }];
      let sum = arr.reduce((acc, cur) => acc + cur.value, 0);
      document.getElementById("result").innerHTML = sum;
   </script>
</body>
</html>
Copier après la connexion

Dans le programme ci-dessus, nous avons un tableau d'objets, chaque objet a un nom et un attribut de valeur. Nous utilisons la méthode réduire() pour additionner les valeurs.

Nous transmettons une fonction de rappel ((acc, cur) => acc + cur.value), qui accepte l'accumulateur acc en cours de traitement (le résultat de l'appel de fonction de rappel précédent) et la valeur actuelle cur. La fonction de rappel renvoie ensuite l'accumulateur plus la valeur actuelle.

Ensuite, la méthode reduce() renvoie l'accumulateur, qui est la somme de toutes les valeurs.

< h2>Avantages de l'utilisation de réduire()

L'un des avantages de l'utilisation de réduire() est qu'elle peut rendre votre code plus lisible.

Par exemple, si nous voulons additionner les valeurs du tableau ci-dessus, nous pouvons également utiliser une boucle for.

Exemple

<html>
<head>
   <title>Using for loop</title>
</head>
<body>
   <h2> Using for loop to sum the values of objects in an array</h2>
   <div id="result"></div>
   <script>
      let arr = [{ name: "John", value: 5 }, { name: "Jane", value: 7 }, { name: "Jim", value: 3 }];
      let sum = 0;
      for (let i = 0; i < arr.length; i++) {
         sum += arr[i].value;
      }
      document.getElementById("result").innerHTML = sum
   </script>
</body>
</html>
Copier après la connexion

La méthode reduce() ci-dessus et la boucle for obtiennent toutes deux le même résultat. Cependant, la méthode reduce() est plus concise et plus facile à lire.

Un autre avantage de l'utilisation de reduction() est qu'elle peut être utilisée pour traiter des données en parallèle.

Par exemple, si nous avons un tableau d'objets, chaque objet a un nom et un attribut de valeur, et nous voulons traitez-le en parallèle. Pour chaque objet, nous pouvons utiliser la méthode map().

let arr = [{ name: "John", value: 5 }, { name: "Jane", value: 7 }, { name: "Jim", value: 3 }];
let results = arr.map(obj => { // do something with obj });
Copier après la connexion

Cependant, si nous voulons traiter les données de manière séquentielle, nous pouvons utiliser la méthode reduce().

let arr = [{ name: "John", value: 5 }, { name: "Jane", value: 7 }, { name: "Jim", value: 3 }];
let result = arr.reduce((acc, obj) => { // do something with obj and return the result }, initialValue);
Copier après la connexion

Conclusion

Dans ce tutoriel, nous avons vu comment appliquer une fonction sur un accumulateur et chaque clé d'un objet en utilisant la méthode réduire(). Nous avons également vu certains avantages de l’utilisation de réduire() par rapport à d’autres méthodes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!