AngularJS 中的高級數組求和
在 AngularJS 中,對數組屬性求和可能是一項常見任務。基本方法包括迭代數組並累積屬性值。然而,當面對多個陣列和不同的屬性名稱時,這種方法會變得乏味。
為了解決這個問題,需要一種更靈活、可重用的解決方案,它允許對任何數組屬性進行方便的求和。這可以使用reduce()方法來實現,該方法提供了一種強大的方法來聚合數組值。
考慮以下範例:
$scope.traveler = [ { description: 'Senior', Amount: 50}, { description: 'Senior', Amount: 50}, { description: 'Adult', Amount: 75}, { description: 'Child', Amount: 35}, { description: 'Infant', Amount: 25 }, ];
對陣列的「Amount」屬性求和旅行者陣列使用reduce(),我們可以寫如下方法:
$scope.sum = function(items, prop){ return items.reduce( function(a, b){ return a + b[prop]; }, 0); };
在這個方法中,我們使用帶有回呼的reduce()方法函數接受兩個參數:累加值(a) 和陣列的目前元素(b)。在回調中,我們存取要求和的屬性 (prop) 並將其新增至累加值。
要將此方法應用於我們的旅行者數組,我們可以執行以下操作:
$scope.travelerTotal = $scope.sum($scope.traveler, 'Amount');
使用這種方法,我們可以輕鬆地對AngularJS 應用程式中任何數組的屬性值求和。透過定義可重複使用的方法,我們避免了冗餘程式碼並確保求和計算的一致性。
以上是如何在 AngularJS 中有效地求和數組屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!