Soma do array de objetos em JavaScript

Shivam Arora 12 outubro 2023
  1. Use a função reduce para somar os valores de um array de objetos em JavaScript
  2. Use as funções map() e reduce() para somar os valores de um array de objetos em JavaScript
Soma do array de objetos em JavaScript

um array pode armazenar tipos semelhantes de elementos, e isso também inclui objetos.

Neste artigo, aprenderemos maneiras melhores e eficientes de somar os valores de um array de objetos em JavaScript.

Em nossos exemplos, somaremos a Amount de todos os objetos na seguinte matriz.

fruits = [
  {description: 'orange', Amount: 50},
  {description: 'orange', Amount: 50},
  {description: 'apple', Amount: 75},
  {description: 'kiwi', Amount: 35},
  {description: 'watermelon', Amount: 25},
];

Use a função reduce para somar os valores de um array de objetos em JavaScript

Podemos criar uma função chamada sum() e usar o método reduce() para reduzir o array a um único valor, que é a soma de todos os valores do array.

Este método ajuda a filtrar e mapear o valor simultaneamente em uma única passagem.

Implementamos isso no código a seguir.

class fruitCollection extends Array {
  sum(key) {
    return this.reduce((a, b) => a + (b[key] || 0), 0);
  }
}
const fruit = new fruitCollection(
    ...[{description: 'orange', Amount: 50},
        {description: 'orange', Amount: 50},
        {description: 'apple', Amount: 75},
        {description: 'kiwi', Amount: 35},
        {description: 'watermelon', Amount: 25},
]);

console.log(fruit.sum('Amount'));

Resultado:

235

Use as funções map() e reduce() para somar os valores de um array de objetos em JavaScript

A função map() constrói uma nova matriz, alterando o valor de cada elemento em um array, respectivamente. Em seguida, a função de filtro é usada para remover os valores que não se enquadram nessa categoria. Finalmente, a função reduce() pega todos os valores e retorna um único valor, que é a soma necessária.

Por exemplo,

fruits = [
  {description: 'orange', Amount: 50},
  {description: 'orange', Amount: 50},
  {description: 'apple', Amount: 75},
  {description: 'kiwi', Amount: 35},
  {description: 'watermelon', Amount: 25},
];
const sumall =
    fruits.map(item => item.amount).reduce((prev, curr) => prev + curr, 0);
console.log(sumall);

Resultado:

235

Artigo relacionado - JavaScript Object