Fonctions de branchement convergentes

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Dans ce laboratoire, nous allons explorer le concept de fonctions de branchement convergentes en JavaScript. Le but de ce laboratoire est de vous aider à comprendre comment créer une fonction de haut niveau qui accepte une liste de fonctions de branchement et une fonction de convergence en tant qu'arguments et renvoie une nouvelle fonction qui applique chaque fonction de branchement aux arguments et passe les résultats à la fonction de convergence. Cette technique peut être utile dans de nombreux scénarios où vous devez combiner plusieurs fonctions pour produire un résultat final.

Fonctions de convergence

Pour pratiquer la programmation, ouvrez le Terminal/SSH et tapez node.

Cette fonction converge prend une fonction de convergence et une liste de fonctions de branchement en entrée. Elle renvoie une nouvelle fonction qui applique chaque fonction de branchement aux arguments d'entrée. Les résultats des fonctions de branchement sont ensuite passés en tant qu'arguments à la fonction de convergence.

Les méthodes Array.prototype.map() et Function.prototype.apply() sont utilisées pour appliquer chaque fonction aux arguments d'entrée. L'opérateur de propagation (...) est ensuite utilisé pour appeler converger avec les résultats de toutes les autres fonctions.

Voici le code pour la fonction converge :

const converge =
  (converger, fns) =>
  (...args) =>
    converger(...fns.map((fn) => fn.apply(null, args)));

Un exemple d'utilisation de cette fonction est montré ci-dessous. La fonction average est créée en appelant converge avec une fonction anonyme qui calcule la moyenne d'un tableau. Les fonctions de branchement sont deux fonctions anonymes qui calculent respectivement la somme d'un tableau et sa longueur.

const average = converge(
  (a, b) => a / b,
  [(arr) => arr.reduce((a, v) => a + v, 0), (arr) => arr.length]
);
average([1, 2, 3, 4, 5, 6, 7]); // 4

Ce code calcule la moyenne du tableau [1, 2, 3, 4, 5, 6, 7] et renvoie 4.

Résumé

Félicitations ! Vous avez terminé le laboratoire sur les fonctions de branchement convergentes. Vous pouvez pratiquer d'autres laboratoires dans LabEx pour améliorer vos compétences.