Somar valores em uma lista de objetos javascript usando reduce.

Luiz Alberto Mesquita
1 min readMar 16, 2020

--

Se você precisar percorrer todos os elementos de uma lista de objetos json e executar cálculos em uma propriedade específica desses objetos, como somar ou subtrair, é bem provável que a solução pra você seja utilizar a função reduce().

O reduce é utilizado quando precisamos transformar uma lista de elementos em um simples valor.

  • O reduce executa uma função fornecida para cada valor de um array(da esquerda para a direita).
  • O valor de retorno da função é armazenado em um acumulador (total).
  • Nota: O reduce não executa a função para elementos da matriz sem valores.

Sintaxe:

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

Exemplo:

Temos o seguinte json:

var products = [
{name:’caneta’, value:2.30, quantity:3},
{name:’caderno’, value:13.40, quantity:2},
{name:’borracha’, value:1.2, quantity:5}
]

Para sabermos o valor total de todos os itens dessa lista deveremos fazer assim:

var total = products.reduce(getTotal, 0);
function getTotal(total, item) {
return total + (item.value * item.quantity);
}

Com isso é possível calcular o valor final da soma de todos os produtos multiplicado pela quantidade de cada um deles.

Teste no jsfiddle.net:

--

--