Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

dúvida no método .reduce()

Alguem poderia explicar detalhadamente o método .reduce() em Js, tipo dar exemplos de aplicação etc...

2 respostas
solução!

Fala Thales beleza ?

O reduce() vai passar por todos os índices de um array e realizar uma operação, (por exemplo somar todo os itens de um array). com o objetivo de reduzir esse array a um único valor, mas sem modificar o array principal.

Ele recebe quatro parâmetros :

acumulado - valor que no nosso caso vai ser somado com primeiro item do array

atual - valor da soma no momento atual

index - indice do array

array - array que oreduceestá passando

var array = [1, 2, 3, 4, 5];

    var reduce = array.reduce(function(acumulado, atual, index, array){
        return acumulado + atual;

    },10);
    console.log( reduce, array);
// 25
// [1, 2, 3 , 4, 5]

Podemos passar um valor que vai ser o primeiro a ser utilizado na operação, no nosso caso vamos fazer uma soma e passar o número 10 como valor inicial.

Outro exemplo, posso usar o reduce() para concatenar strings

var string = ['R','O','N','A','L','D','O'];

    var reduce = string.reduce(function(acumulado, atual, index, array){
        return acumulado + atual;
    });
    console.log( reduce, string );
// RONALDO
// ["R", "O", "N", "A", "L", "D", "O"]

Note que eu não passei valor acumulado dessa vez. então o reduce()pega o primeiro item do array, tomando o como se fosse o valor acumulado e o valor atual o segundo item.

Boa tarde, Thales! Como vai?

O método reduce() executa uma função reducer (provida por você) para cada membro do array, retornando um único valor!

Exemplo

const array1 = [1, 2, 3, 4];
const reducer = (accumulador, valorAtual) => accumulador + valorAtual;

// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// valor esperado: 10

Para saber mais: Segue o link da documentação do método reduce().