JavaScript Reduce é um dos métodos recentes de programação funcional que a linguagem possui. Ele foi definido no EcmaScript 2015, e é um método de arrays. Acesse aqui para entender um pouco mais dessa história do JavaScript. Se você não entende muito bem sobre programação funcional, deixa um comentário que faço um texto sobre. Mas tentando resumir, programação funcional é um paradigma que evita a criação de estados ou dados mutáveis.
O método reduce() reduz um array a um único valor, executando uma função para cada valor do array da esquerda para a direita ou de baixo para cima. No caso de valores indefinidos, a função não é executada.
Sendo assim, o método tem a seguinte estrutura:
array.reduce(callback(valorAnterior, valorAtual, indice, array){...}, valorInicial)
A callback (função que é executada para cada valor do array) recebe quatro parâmetros:
É o valor retornado na última vez que a callback foi chamada. Se o parâmetro valorInicial estiver sendo utilizado, na primeira chamada da callback, ele é o valor utilizado.
O valor atual do array, que está sendo utilizado.
Índice (posição) do elemento atual. Lembrando que array começa no índice 0.
Esse parâmetro é opcional. Caso seja passado, é usado como primeiro argumento, na primeira chamada da função callback.
Imagine que você tem uma tabela de produtos, e você queira somar todos os valores dos produtos ou todas as quantidades, por exemplo. O método JavaScript reduce é uma excelente saída nesse caso.
Outra utilização comum é para o caso de cálculo de média de vários valores.
Vamos começar fazendo a soma. Imagine que tenhamos um array com os preços de produtos de um carrinho e queremos calcular o preço total deste carrinho. Como resultado teríamos um código parecido com:
Se você ainda não entende muito bem sobre let e const dá uma lida nesse outro texto.
No segundo exemplo, vamos fazer uma média simples do somatórios de várias notas:
Uma coisa que a gente sempre tem que se preocupar com as novas features do JavaScript, CSS ou outro é em qual navegadores funciona. Claro que se você estiver só estudando, estuda o que tem de melhor. Mas se for pra colocar em produção, principalmente a galera do Internet Explorer, tem sempre que se preocupar. Sendo assim, compatibilidade do JavaScript reduce é a seguinte:
Ou seja, não tendo necessidade do IE 8, você pode usar tranquilo o JavaScript reduce, beleza?
Qualquer dúvida não esquece de deixar seu comentário e fica de olho que vou continuar escrevendo sobre os métodos mais interessantes do JavaScript! Segue lá no Facebook pra ficar sabendo dos posts assim que eles forem lançados 🙂
Desvendando o Potencial da Blockchain e Criptomoedas através da Criptografia Em um mundo onde a…
O deploy de uma aplicação React é uma etapa crucial para disponibilizar sua criação na…
Satellite 2020 foi a primeira conferência virtual do Github. O Github já tinha sido liberado…
Neste guia veremos o que são web components, quando usar, sua estrutura e também um…
A alguns anos atrás escrevi um texto sobre o que é o frontend, também palestrei…
O que é SVG é a sigla para Scalable Vector Graphics que traduzindo seria gráficos…