Somando Valores em um Array com reduce() em JavaScript

Este documento explora o uso do método reduce() em #JavaScript para somar os valores de um #array . Apresentaremos um exemplo conciso utilizando reduce() e, em seguida, detalharemos o processo passo a passo para uma melhor compreensão do seu funcionamento interno.

 

Somando com `reduce()`

 

O método reduce() é uma ferramenta poderosa para iterar sobre um array e acumular um único valor resultante. No contexto da soma, ele itera sobre cada elemento do array, adicionando-o a um acumulador que é retornado ao final.

 

let valores = [1,2,3,4,5];

const soma = valores.reduce((acumulador, valor) => acumulador + valor);
console.log(soma); // Output: 15

 

Neste exemplo, valores é o array que queremos somar. A função reduce() recebe dois argumentos:

 

  • acumulador: O valor acumulado até o momento. Na primeira iteração, ele assume o valor do primeiro elemento do array (a menos que um valor inicial seja fornecido como segundo argumento para reduce()).

  • valor: O valor do elemento atual que está sendo processado.

 

A função (acumulador, valor) => acumulador + valor é uma função de callback que define a lógica da acumulação. Em cada iteração, ela adiciona o valor atual ao acumulador e retorna o novo valor do acumulador. Ao final da iteração sobre todos os elementos do array, reduce() retorna o valor final do acumulador, que é a soma de todos os elementos.

 

Detalhando o Processo Passo a Passo

 

Para entender melhor como reduce() funciona, podemos simular o processo utilizando um loop for. Isso nos permite visualizar o valor do acumulador em cada etapa.

 

// let valores = [1,2,3,4,5]; // Já definido anteriormente

let acumulador = 0;

for (let i = 0; i < valores.length; i++) {
 acumulador += valores[i];
 console.log(acumulador);
}

console.log(acumulador);

 

Neste exemplo, inicializamos o acumulador com 0. Em seguida, iteramos sobre o array valores usando um loop for. Em cada iteração, adicionamos o valor do elemento atual (valores[i]) ao acumulador e imprimimos o valor atual do acumulador no console. Ao final do loop, imprimimos o valor final do acumulador, que é a soma de todos os elementos do array.

 

A saída deste código será:

 

1
3
6
10
15
15

 

Podemos observar que o acumulador é atualizado a cada iteração, refletindo a soma dos elementos processados até o momento. O valor final do acumulador (15) é o mesmo valor retornado pelo método reduce().

 

Conclusão

 

O método reduce() oferece uma maneira concisa e elegante de somar os valores de um array em JavaScript. Ao entender o processo passo a passo, podemos apreciar a sua eficiência e versatilidade. Embora o loop for forneça uma alternativa para realizar a mesma tarefa, reduce() é frequentemente preferível devido à sua legibilidade e expressividade, especialmente em cenários mais complexos de acumulação.