高效數組值求和
本題尋求一個有效的解決方案來計算多個數組中特定屬性的總和。
問題語句
給定一個物件數組,每個物件都包含一個「描述」和一個「金額」屬性,原始方法涉及迭代數組並增量新增「金額」值:
$scope.totalAmount = function(){ var total = 0; for (var i = 0; i < $scope.traveler.length; i++) { total = total + $scope.traveler[i].Amount; } return total; }
任意屬性的等效方法
所需的解決方案是允許對任意屬性值求和,表示為:
$scope.traveler.Sum({ Amount }); $scope.someArray.Sum({ someProperty });
最佳化解決方案
建議的解決方案利用array.reduce方法來實現此目的目標:
$scope.sum = function(items, prop){ return items.reduce( function(a, b){ return a + b[prop]; }, 0); }; $scope.travelerTotal = $scope.sum($scope.traveler, 'Amount');
優點
以上是如何有效地對多個 JavaScript 陣列中特定屬性的值求和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!