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