Suma del array de objetos en JavaScript
-
Utilice la función
reduce
para sumar los valores de un array de objetos en JavaScript -
Utilice las funciones
map()
yreduce()
para sumar los valores de un 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