Heim >Web-Frontend >js-Tutorial >Wie kann ich die Werte einer bestimmten Eigenschaft über mehrere JavaScript-Arrays hinweg effizient summieren?

Wie kann ich die Werte einer bestimmten Eigenschaft über mehrere JavaScript-Arrays hinweg effizient summieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-20 19:34:10982Durchsuche

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

Effiziente Array-Wertsummierung

Diese Frage sucht nach einer effizienten Lösung für die Berechnung der Gesamtsumme einer bestimmten Eigenschaft über mehrere Arrays hinweg.

Problemstellung

Gegeben sei ein Array von Objekten, von denen jedes ein enthält „Beschreibung“ und eine „Betrag“-Eigenschaft umfasste der ursprüngliche Ansatz das Durchlaufen des Arrays und das schrittweise Hinzufügen der „Betrag“-Werte:

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

Äquivalente Methode für beliebige Eigenschaften

Die gewünschte Lösung würde die Summierung beliebiger ausgedrückter Eigenschaftswerte ermöglichen als:

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

Optimierte Lösung

Die vorgeschlagene Lösung nutzt die array.reduce-Methode, um dieses Ziel zu erreichen:

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

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

Vorteile

  • Wiederverwendbarkeit: Diese Lösung kann für jedes Array wiederverwendet werden, indem die entsprechenden Argumente an die Summenfunktion übergeben werden.
  • Prägnanz: Sie kapselt die Summierungslogik in einer einzigen Methode, wodurch explizite Iterationsschleifen überflüssig werden.
  • Verbesserte Leistung: Reduzieren bietet inhärente Leistungsoptimierungen für das Array Verarbeitung.

Das obige ist der detaillierte Inhalt vonWie kann ich die Werte einer bestimmten Eigenschaft über mehrere JavaScript-Arrays hinweg effizient summieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn