Somar valores em uma lista de objetos javascript usando reduce.
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.