0
Angular JS:如何將@scope.object
中的所有變量求和?Angular JS:如何總結@ scope.object中的所有變量
我有一個對象$scope.Growth
裏面有多個變量。 我怎樣才能以最簡單的方式將所有這些總和?
Angular JS:如何將@scope.object
中的所有變量求和?Angular JS:如何總結@ scope.object中的所有變量
我有一個對象$scope.Growth
裏面有多個變量。 我怎樣才能以最簡單的方式將所有這些總和?
Object.values($scope.Growth)
.filter(value => !isNaN(value))
.reduce((sum, value) => sum + value, 0)
這通過
獲取值的陣列爲每個自己的屬性在對象
過濾出的是無法轉換爲有效的任何值號碼
通過減少過濾的數組來加總所有的值。
如果你是在一箇舊的運行時間,並沒有提供給您Object.values
功能,您可以按如下
Object.keys($scope.Growth)
.map(function (key) {return $scope.Growth[key];})
.filter(function (value) {return !isNaN(value);})
.reduce(function (sum, value) {return sum + value;}, 0)
這裏是行動
它的一個例子寫const $scope = {
Growth: {
a: 1,
b: 2,
c: 3
}
};
const sum = Object.values($scope.Growth)
.filter(value => !isNaN(value))
.reduce((sum, value) => sum + value, 0);
console.info(sum);
注意,如果你需要數據綁定到結果在AngularJS模板,而不是在這個問題從名稱$scope
提及,但suggestable,你會喜歡寫東西
(function() {
AppController.$inject = ['$scope'];
function AppController($scope) {
$scope.Growth = {
a: 1,
b: 2,
c: 3
};
$scope.growthSum =() => Object.values($scope.Growth)
.filter(value => !isNaN(value))
.reduce((sum, value) => sum + value, 0);
}
const app = angular
.module('app', [])
.controller({
AppController
});
angular.bootstrap(document.getElementById('app'), [app.name], {
ngStrictDi: true
});
}());
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js">
</script>
<div id="app" ng-controller="AppController">
{{growthSum()}}
</div>
即時得到了Object.values無效的錯誤() –
@KevalRaj我添加了一個與舊的運行時兼容的版本。如果失敗了,那麼這個對象就不是你所指示的 –
即時獲取visual studio中的語法錯誤。我錯過了什麼嗎? (value =>!isNaN(value)).reduce((sum,value)=> sum + value, 0) –