Soma do array de objetos em JavaScript
- 
          
            Use a função reducepara somar os valores de um array de objetos em JavaScript
- 
          
            Use as funções map()ereduce()para somar os valores de um 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