Suma del array de objetos en JavaScript

Shivam Arora 12 octubre 2023
  1. Utilice la función reduce para sumar los valores de un array de objetos en JavaScript
  2. Utilice las funciones map() y reduce() para sumar los valores de un array de objetos en JavaScript
Suma del array de objetos en JavaScript

un array puede almacenar tipos similares de elementos, y esto también incluye objetos.

En este artículo, aprenderemos formas mejores y eficientes de sumar los valores de un array de objetos en JavaScript.

En nuestros ejemplos, sumaremos la Amount de todos los objetos de la siguiente matriz.

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

Utilice la función reduce para sumar los valores de un array de objetos en JavaScript

Podemos crear una función llamada sum() y usar el método reduce() para reducir el array a un solo valor, que es la suma de todos los valores del array.

Este método ayuda a filtrar y mapear el valor simultáneamente en una sola pasada.

Implementamos esto en el siguiente código.

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'));

Producción :

235

Utilice las funciones map() y reduce() para sumar los valores de un array de objetos en JavaScript

La función map() construye una nueva matriz cambiando el valor de cada elemento en un array respectivamente. Luego, la función de filtro se usa para eliminar los valores que no caen en esa categoría. Finalmente, la función reduce() toma todos los valores y devuelve un solo valor, que es la suma requerida.

Por ejemplo,

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);

Producción :

235

Artículo relacionado - JavaScript Object