No internet connection
  1. Home
  2. JavaScript

Resumo do método Reduce no JavaScript

Por Alan Eduardo da Cruz @alanEduardo
    2023-12-13 01:40:35.809Z

    Olá pessoal, tudo bem?

    Estou postando alguns resumos aqui sobre métodos com objetivo de ajudar aqueles que por algum motivo ainda permanecem com duvidas.

    Reduce: O método REDUCE serve para ‘reduzir’ um array a apenas um item. Como assim ? Ele vai passar item por item no array e no final vai restar apenas um valor.

    /*
     O Reduce aceita até 4 parâmetros:
    
    const novoArray = arrayOriginal.reduce(
      (acumulador, valorAtual, índice, arrayOriginal) => {
    			return xxxxx
    }, valorInicial);
    
    
    	1) O acumulador, na primeira iteração terá o valor inicial que daremos a ele.            
           Já nas demais iterações, ele terá o valor que iremos acumular nele. Item OBRIGATÓRIO.
    	2) O valor do atual elemento sendo iterado. Item OBRIGATÓRIO.
    	3) O índice do elemento atual. Item OPCIONAL.
    	4) O array original. Item OPCIONAL.
    
    
    */
    
    const numbers = [1, 2, 3, 4, 5];
    const total = numbers.reduce((acumulador, atual) => {
    		return acumulador = acumulador + numero;
    }, 0) // repare nesse 0. Ele é o valor inicial que o acumulador receberá
    
    
    /*
    O que aconteceu aqui ? Definimos um valor inicial para o acumulador. Então ele começou a somar número a número dentro do array.
    
    Na primeira iteração foi assim:
    	
     acumulador = acumulador(0) + atual(1) -> Agora acumulador valerá 1
    
    Na segunda iteração, agora acumulador vale 1.
    	 
     acumulador = acumulador(1) + atual(2) -> Agora acumulador valerá 3
    */
    
    
    // total é igual a 15;
    // numbers continua...   [1, 2, 3, 4];
    
    
    
    • 2 respostas
    1. Sendo bem sincera eu nunca lembro do reduce, mas o legal é que dá pra aplicar a array de objetos também, exemplo:

      const pessoas = [
        { nome: 'João', idade: 25 },
        { nome: 'Maria', idade: 30 },
        { nome: 'Pedro', idade: 22 }
      ];
      
      const somaIdades = pessoas.reduce((acumulador, pessoa) => acumulador + pessoa.idade, 0);
      
      
      1. A
        Em resposta aalanEduardo:
        Alan Eduardo da Cruz @alanEduardo
          2023-12-13 21:38:02.255Z

          Com esse exemplo que você deu, ficou ainda mais claro a aplicação do método Reduce.