Maison >interface Web >js tutoriel >Comment puis-je additionner efficacement les valeurs d'une propriété spécifique sur plusieurs tableaux JavaScript ?

Comment puis-je additionner efficacement les valeurs d'une propriété spécifique sur plusieurs tableaux JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-20 19:34:101052parcourir

How Can I Efficiently Sum the Values of a Specific Property Across Multiple JavaScript Arrays?

Somme efficace des valeurs de tableau

Cette question recherche une solution efficace pour calculer la somme totale d'une propriété spécifique sur plusieurs tableaux.

Énoncé du problème

Étant donné un tableau d'objets, chacun contenant une propriété "description" et une propriété "Montant", l'approche originale impliquait de parcourir le tableau et d'ajouter progressivement les valeurs "Montant":

$scope.totalAmount = function(){
       var total = 0;
       for (var i = 0; i < $scope.traveler.length; i++) {
              total = total + $scope.traveler[i].Amount;
            }
       return total;
}

Méthode équivalente pour les propriétés arbitraires

La solution souhaitée permettrait de sommer des valeurs de propriétés arbitraires, exprimées comme :

$scope.traveler.Sum({ Amount });
$scope.someArray.Sum({ someProperty });

Solution optimisée

La solution proposée exploite la méthode array.reduce pour y parvenir goal :

$scope.sum = function(items, prop){
    return items.reduce( function(a, b){
        return a + b[prop];
    }, 0);
};

$scope.travelerTotal = $scope.sum($scope.traveler, 'Amount');

Avantages

  • Réutilisabilité : Cette solution peut être réutilisée pour n'importe quel tableau en passant les arguments appropriés au fonction de somme.
  • Concision : Il encapsule la sommation logique dans une seule méthode, éliminant ainsi le besoin de boucles d'itération explicites.
  • Performances améliorées : Réduire fournit des optimisations de performances inhérentes au traitement des tableaux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn