Funciones de bifurcación convergente

JavaScriptJavaScriptBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos el concepto de funciones de bifurcación convergente en JavaScript. El propósito de este laboratorio es ayudarte a entender cómo crear una función de orden superior que acepte una lista de funciones de bifurcación y una función convergente como argumentos y devuelva una nueva función que aplique cada función de bifurcación a los argumentos y pase los resultados a la función convergente. Esta técnica puede ser útil en muchos escenarios donde necesites combinar múltiples funciones para producir un resultado final.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28212{{"Funciones de bifurcación convergente"}} javascript/data_types -.-> lab-28212{{"Funciones de bifurcación convergente"}} javascript/arith_ops -.-> lab-28212{{"Funciones de bifurcación convergente"}} javascript/comp_ops -.-> lab-28212{{"Funciones de bifurcación convergente"}} javascript/higher_funcs -.-> lab-28212{{"Funciones de bifurcación convergente"}} javascript/spread_rest -.-> lab-28212{{"Funciones de bifurcación convergente"}} end

Funciones convergentes

Para practicar la codificación, abre la Terminal/SSH y escribe node.

Esta función converge toma una función convergente y una lista de funciones de bifurcación como entrada. Devuelve una nueva función que aplica cada función de bifurcación a los argumentos de entrada. Los resultados de las funciones de bifurcación se pasan luego como argumentos a la función convergente.

Los métodos Array.prototype.map() y Function.prototype.apply() se utilizan para aplicar cada función a los argumentos de entrada. El operador de propagación (...) se utiliza luego para llamar a converger con los resultados de todas las demás funciones.

Aquí está el código para la función converge:

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

Un ejemplo de cómo utilizar esta función se muestra a continuación. La función average se crea llamando a converge con una función anónima que calcula el promedio de una matriz. Las funciones de bifurcación son dos funciones anónimas que calculan la suma de una matriz y su longitud, respectivamente.

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

Este código calcula el promedio de la matriz [1, 2, 3, 4, 5, 6, 7] y devuelve 4.

Resumen

¡Felicidades! Has completado el laboratorio de Funciones de Bifurcación Convergente. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.