Somme d'un tableau d'objets en JavaScript
-
Utilisez la fonction
reduce
pour additionner les valeurs d’un tableau d’objets en JavaScript -
Utilisez les fonctions
map()
etreduce()
pour additionner les valeurs d’un tableau d’objets en JavaScript
Un tableau peut stocker des types d’éléments similaires, et cela inclut également des objets.
Dans cet article, nous allons apprendre des moyens meilleurs et efficaces pour additionner les valeurs d’un tableau d’objets en JavaScript.
Dans nos exemples, nous additionnerons le Amount
pour tous les objets du tableau suivant.
fruits = [
{description: 'orange', Amount: 50},
{description: 'orange', Amount: 50},
{description: 'apple', Amount: 75},
{description: 'kiwi', Amount: 35},
{description: 'watermelon', Amount: 25},
];
Utilisez la fonction reduce
pour additionner les valeurs d’un tableau d’objets en JavaScript
Nous pouvons créer une fonction appelée sum()
et utiliser la méthode reduce()
pour réduire le tableau à une seule valeur, qui est la somme de toutes les valeurs du tableau.
Cette méthode permet de filtrer et de mapper la valeur simultanément en un seul passage.
Nous l’implémentons dans le code suivant.
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'));
Production:
235
Utilisez les fonctions map()
et reduce()
pour additionner les valeurs d’un tableau d’objets en JavaScript
La fonction map()
construit un nouveau tableau en changeant respectivement la valeur de chaque élément d’un tableau. Ensuite, la fonction de filtre est utilisée pour supprimer les valeurs qui n’entrent pas dans cette catégorie. Enfin, la fonction reduce()
prend toutes les valeurs et renvoie une seule valeur, qui est la somme requise.
Par example,
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);
Production:
235