Programação funcional com a função reduce() do JavaScript

Por sandro_admin em

Dentro do paradigma da programação funcional no JavaScript, o método reduce() é uma das funções fundamentais. Esta permite trabalhar com arrays podendo ser utilizada, por exemplo, para somar todos os elementos de um array, calcular a média, concatenar strings, etc.

O método reduce() permite iterar e executar uma função de callback por cada elemento do array. O valor devolvido pela função (normalmente denominado de acumulador) é utilizado como valor acumulativo para a próxima execução do callback. O resultado final é um único valor.

Seguem alguns exemplos práticos com a função reduce() do JavaScript.

Ver exemplos no repl.it

Sintaxe:

array.reduce(callback[, initialValue])

Exemplo:

Saída:

previousResult (accumulator): 5
currentElement (current element value): 10
currentIndex (current element array index): 1
array (the array): Array(3)
--------------------------------
previousResult (accumulator): 15
currentElement (current element value): 15
currentIndex (current element array index): 2
array (the array): Array(3)
--------------------------------
result (5+10+15): 30
________________________________
previousResult (accumulator): 100
currentElement (current element value): 5
currentIndex (current element array index): 0
array (the array): Array(3)
--------------------------------
previousResult (accumulator): 105
currentElement (current element value): 10
currentIndex (current element array index): 1
array (the array): Array(3)
--------------------------------
previousResult (accumulator): 115
currentElement (current element value): 15
currentIndex (current element array index): 2
array (the array): Array(3)
--------------------------------
result (100+5+10+15): 130

Conclusão

O método reduce() apresenta algumas vantagens face aos tradicionais ciclos for e forEach: escrita de código mais limpo, maior facilidade de implementação da lógica pretendida e melhor manutenção do código. Além disso, este método não altera o array original, o que significa que é uma função imutável e, portanto, tem também outras vantagens inerentes à programação funcional (escrita de funções puras que elimina os chamados “efeitos colaterais”, maior facilidade em escrever testes e em fazer debugger, entre outras).

Achou interessante? Siga-me no Twitter.


0 comentários

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *