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
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!