Componer funciones eficientemente en JavaScript

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 composición de funciones en JavaScript. Aprenderemos cómo combinar múltiples funciones en una sola función que realice una secuencia de operaciones en un orden de izquierda a derecha. A través del uso de la función pipeFunctions, descubriremos los beneficios de la composición de funciones y cómo puede simplificar nuestro código y hacerlo más legible.


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-28546{{"Componer funciones eficientemente en JavaScript"}} javascript/data_types -.-> lab-28546{{"Componer funciones eficientemente en JavaScript"}} javascript/arith_ops -.-> lab-28546{{"Componer funciones eficientemente en JavaScript"}} javascript/comp_ops -.-> lab-28546{{"Componer funciones eficientemente en JavaScript"}} javascript/higher_funcs -.-> lab-28546{{"Componer funciones eficientemente en JavaScript"}} javascript/spread_rest -.-> lab-28546{{"Componer funciones eficientemente en JavaScript"}} end

Composición de funciones con tuberías

Para comenzar a practicar la codificación con tuberías, abre la Terminal/SSH y escribe node.

La función pipeFunctions realiza la composición de funciones de izquierda a derecha utilizando Array.prototype.reduce() con el operador de propagación (...). La primera (más a la izquierda) función puede aceptar uno o más argumentos, mientras que las funciones restantes deben ser unarias.

const pipeFunctions = (...fns) =>
  fns.reduce(
    (f, g) =>
      (...args) =>
        g(f(...args))
  );

Aquí hay un ejemplo de cómo usar pipeFunctions para crear una nueva función multiplyAndAdd5 que multiplica dos números y luego suma 5 al resultado:

const add5 = (x) => x + 5;
const multiply = (x, y) => x * y;
const multiplyAndAdd5 = pipeFunctions(multiply, add5);
multiplyAndAdd5(5, 2); // 15

En este ejemplo, multiplyAndAdd5 es una nueva función que toma dos argumentos, 5 y 2, y aplica primero multiply a ellos, lo que da como resultado 10, y luego aplica add5 al resultado, lo que da como resultado 15.

Resumen

¡Felicitaciones! Has completado el laboratorio de Funciones de Tubería. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.