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
,您可以编写类似
(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>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句