高效数组值求和
本题寻求一种有效的解决方案来计算多个数组中特定属性的总和。
问题语句
给定一个对象数组,每个对象都包含一个“描述”和一个“金额”属性,原始方法涉及迭代数组并增量添加“金额”值:
$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中文网其他相关文章!