Compreendendo funções de ordem superior em JavaScript
Aprenda como as funções JavaScript podem ser flexíveis e como você pode usá-las para criar código flexível e reutilizável.
JavaScript é uma linguagem poderosa suportada pela maioria dos navegadores modernos e é uma ótima opção para iniciantes.
Assim como muitas outras linguagens de programação modernas, o JavaScript oferece suporte a funções que permitem isolar um bloco de código e reutilizá-lo em outro lugar. Você também pode atribuir funções a variáveis e passá-las como parâmetros, como outros valores.
A definição mais simples para uma função de ordem superior é uma função que executa operações em outras funções aceitando-as como parâmetros ou retornando-as. Funções de ordem superior são muito utilizadas no paradigma de programação funcional. Se você está apenas começando com JavaScript, funções de ordem superior podem ser um pouco difíceis de entender.
Considere o seguinte exemplo:
No bloco de código acima, otransformarfunção é uma função de ordem superior que leva em contafnfunciona como um parâmetro e retorna uma função anônima que recebevariedadecomo parâmetro.
O propósito dotransformar A função é modificar os elementos do array. Primeiro, o código define uma variávelresultadoArraye o vincula a um array vazio.
Otransformarfunção retorna uma função anônima que percorre cada elemento emvariedade, então passa o elemento para ofnfunção para cálculo e coloca o resultado emresultadoArray . Após a conclusão do loop, a função anônima retorna oresultadoArray.
O bloco de código acima atribui a função anônima retornada pelotransformarfunção para a variável constantefunção1.fnretorna o produto dexque é um substituto paramatriz[eu].
O código também passa um array, como parâmetro parafunção1 e então registra o resultado no console. Uma maneira mais curta de escrever isso seria:
JavaScript tem uma função integrada de ordem superior que basicamente faz a mesma coisa quetransformar, que abordaremos mais tarde.
Esperançosamente, você está começando a entender como funcionam as funções de ordem superior em JavaScript. Dê uma olhada na função a seguir e veja se você consegue adivinhar o que ela faz.
Este bloco de código define uma função que faz o que você pode suspeitar: verifica os elementos no array que atendem a uma determinada condição e os transforma com otransformar() função. Para usar esta função, você faz algo assim:
Ao contrário dotransformarfunção, OfiltroAndTransformfunction recebe duas funções como parâmetros:fnedoença . Odoença A função verifica se o parâmetro foi passado, é um número par e retorna verdadeiro. Caso contrário, retorna falso.
Sedoençaresolve como verdadeiro (a condição é atendida), só então otransformar função chamada. Essa lógica pode ser útil se você estiver trabalhando com um array e quiser transformar determinados elementos. Se você executar este código no console do navegador, deverá obter a seguinte resposta:
Você pode ver que a função transforma apenas os elementos que atendem a uma determinada condição, deixando os elementos que não atendem à condição como estão.
Métodos de array como map() são funções de ordem superior que facilitam a manipulação de arrays. Veja como funciona.
Quando você faz logontransformadoArrayno console do navegador, você deve obter o mesmo resultado obtido com otransformarfunção mencionada anteriormente:
array.map() recebe dois parâmetros, o primeiro parâmetro refere-se ao próprio elemento, enquanto o segundo parâmetro refere-se ao índice do elemento (posição no array). Com apenas
