Sintaxe:
yourArray.reduce(function(p1, p2, p3, p4){
// your code
}, p1_start);
-
reduce() é usada para encontrar valor cumulativo ou agrupar baseado em itens do array
- p1: Função callback
- p2: Valor inicial do primeiro parametro do callback
-
Função de callback retorna 4 parâmetros
- p1: O acumulo de cada interação com os itens do array
- p2: Os itens do array
- p3: As chaves do array
- p3: O array que foi passado
-
Antes do método reduce() poderia obter o mesmo resultado com o método for()
Exemplo com método for()
// Gastos de janeiro a junho
var gastos = [220, 540, 600, 150, 457, 391];
var total = 0;
for(var i = 0; i< gastos.length; i++){
total += gastos[i];
}
console.log(total);
/*
resultado
2358
*/
Exemplo com método reduce()
// USANDO O MESMO ARRAY DE GASTOS DO EXEMPLO COM for()
var total = gastos.reduce(function(p1, p2){
return p1 + p2;
}, 0);
console.log(total);
/*
resultado
2358
*/
Exemplo 2 com método reduce()
var livros = [
{categoria: 'Biografia', nome: 'Steve Jobs', autor: 'Walter Isaacson'},
{categoria: 'Biografia', nome: 'Elon Musk', autor: 'Ashlee Vance'},
{categoria: 'Economia', nome: 'As Seis Lições', autor: 'Ludwig Von Mises'},
{categoria: 'Economia', nome: 'Ação Humana', autor: 'Ludwig Von Mises'},
{categoria: 'Economia', nome: 'O livre mercado e seus inimigos', autor: 'Ludwig Von Mises'}
];
var titulos = livros.reduce(function(p1, p2){
p1.push(p2.nome);
return p1;
}, []);
console.log(titulos);