Compreendendo funções de ordem superior em JavaScript
JavaScript é uma linguagem de programação poderosa que oferece uma ampla gama de recursos e capacidades. Um dos recursos mais importantes e versáteis do JavaScript são as funções de ordem superior. Essas funções recebem uma ou mais funções como argumentos e/ou retornam uma função como resultado, permitindo grande flexibilidade e abstração.
O que é uma função de ordem superior?
Uma função de ordem superior é uma função que recebe uma ou mais funções como argumentos e/ou retorna uma função como resultado. Vamos criar nosso próprio método setTimeout personalizado chamado mySetTimeout:
function mySetTimeout(callback, delay) {
setTimeout(callback, delay);
}
Aqui está um exemplo de como você pode usar mySetTimeoutque criamos antes.:
function sayHello() {
console.log("Hello!");
}
mySetTimeout(sayHello, 1000);
Usando funções de ordem superior em um cenário realista
Digamos que você esteja criando um site de comércio eletrônico e queira exibir uma lista de produtos para o usuário. Você deseja filtrar os produtos com base em determinados critérios, como preço e categoria. Você pode usar uma função de ordem superior para filtrar os produtos.
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);
Você também pode encadear vários filtros para filtrar por vários critérios, por exemplo:
const filteredProducts =
products
.filter(filterBy('category', 'Electronics'))
.filter(filterBy('price', 30));
console.log(filteredProducts);
Conclusão
Neste post, discutimos o conceito básico de funções de ordem superior e fornecemos um exemplo de como elas podem ser usadas em um cenário realista. Também destacamos como as funções de ordem superior podem ser usadas para filtrar produtos com base em vários critérios.
Obrigado por ler!
Com isso, espero que você tenha um melhor entendimento das funções de ordem superior e seus casos de uso em JavaScript.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)