Comprender las funciones de orden superior en JavaScript

Jan 22 2023
JavaScript es un poderoso lenguaje de programación que ofrece una amplia gama de características y capacidades. Una de las características más importantes y versátiles de JavaScript son las funciones de orden superior.

JavaScript es un poderoso lenguaje de programación que ofrece una amplia gama de características y capacidades. Una de las características más importantes y versátiles de JavaScript son las funciones de orden superior. Estas funciones toman una o más funciones como argumentos y/o devuelven una función como su resultado, lo que permite una gran flexibilidad y abstracción.

¿Qué es una función de orden superior?

Una función de orden superior es una función que toma una o más funciones como argumentos y/o devuelve una función como resultado. Vamos a crear nuestro propio método setTimeout personalizado llamado mySetTimeout:

function mySetTimeout(callback, delay) {
  setTimeout(callback, delay);
}

Aquí hay un ejemplo de cómo puede usar mySetTimeoutlo que creamos antes:

function sayHello() {
  console.log("Hello!");
}
mySetTimeout(sayHello, 1000);

Uso de funciones de orden superior en un escenario realista

Supongamos que está creando un sitio web de comercio electrónico y desea mostrar una lista de productos al usuario. Desea filtrar los productos según ciertos criterios, como el precio y la categoría. Puede utilizar una función de orden superior para filtrar los productos.

const products = [
  { name: 'Product 1', price: 10, category: 'Electronics' },
  { name: 'Product 2', price: 20, category: 'Fashion' },
  { name: 'Product 3', price: 30, category: 'Electronics' },
  { name: 'Product 4', price: 40, category: 'Fashion' },
  { name: 'Product 5', price: 50, category: 'Electronics' },
];
const filterBy = (property, value) => (product) => product[property] === value;
const filteredProducts = products.filter(filterBy('category', 'Electronics'));
console.log(filteredProducts);

También puede encadenar varios filtros para filtrar por varios criterios, por ejemplo:

const filteredProducts = 
products
.filter(filterBy('category', 'Electronics'))
.filter(filterBy('price', 30));
console.log(filteredProducts);

Conclusión

En esta publicación, discutimos el concepto básico de las funciones de orden superior y brindamos un ejemplo de cómo se pueden usar en un escenario realista. También destacamos cómo se pueden usar las funciones de orden superior para filtrar productos en función de múltiples criterios.

¡Gracias por leer!

Con esto, espero que tenga una mejor comprensión de las funciones de orden superior y sus casos de uso en JavaScript.