Eficiência usando funções de programação funcional como reduce e map
Embora a map
e a reduce
possam ser utilizadas com o mesmo proposito em algumas situações, é importante verificarmos em qual situação cada função se mostra mais eficiênte
Enquanto o map
invoca uma função callback passada por argumento para cada elemento do Array e devolve um novo Array como resultado, o reduce
devolve um valor decorrente do array, posterior à aplicação da função callback.
Usando o map()
Vejamos um exemplo, neste caso, queremos obter uma string de elementos HTML para inserirmos no nosso DOM. Seja o array:
Para gerarmos uma string com todos os nomes dentro de um elemento <li>
podemos fazer o seguinte, utilizando a função map()
O resultado do console.log
acima é o seguinte resultado:
Ou seja, um array de strings. Para gerarmos uma string única, devemos aplicar um .join('')
no geraListaAlunos
O resultado, depois de usarmos o .join('')
:
Usando o reduce()
Usando o mesmo array utilizado acima, vejamos o mesmo procedimento agora usando o reduce()
, com o parâmetro acumulador
, setado para ''
O resultado:
Ou seja, chegamos ao mesmo resultado quando usamos o map()
, porém de maneira mais eficiênte e enxuta