[英]How to iterate through an array of objects and add up the properties
以下是对象的示例数组:
[{Name : Deji, Age: 12}, {Name : Sonia, Age 13}, {Name : Fabio, Age: 21}]
我如何遍历数组,以增加数组中人员的年龄。
是否有可以增加播放器年龄的功能?
使用Array#forEach和Array#reduce遍历数组项并将每个玩家的年龄添加到变量中。
每次
const players = [{Name : 'Deji', Age: 12}, {Name : 'Sonia', Age: 13}, {Name : 'Fabio', Age: 21}]; let age = 0; players.forEach(player => age += player.Age); console.log(age);
降低
const players = [{Name : 'Deji', Age: 12}, {Name : 'Sonia', Age: 13}, {Name : 'Fabio', Age: 21}]; const age = players.reduce((sum, player) => sum + player.Age, 0); console.log(age);
var players = [{Name : 'Deji', Age: 12}, {Name : 'Sonia', Age : 13}, {Name : 'Fabio', Age: 21}]; var age = 0; players.forEach(function(el){ age+=el.Age; }) console.log(age)
使用forEach遍历每个对象,获取元素并访问Age属性,然后添加它。
首先,您的JSON不是有效的JSON,应该是,
[{“ Name”:“ Deji”,“ Age”:12},{“ Name”:“ Sonia”,“ Age”:13},{“ Name”:“ Fabio”,“ Age”:21}]
随着angularjs您可以使用JUSE array.reduce
函数来计算总。
DEMO
angular.module('MyModule', []) .controller( 'MyController', function($scope){ $scope.data = [ { "Name": "Deji", "Age": 12 }, { "Name": "Sonia", "Age": 13 }, { "Name": "Fabio", "Age": 21 } ]; $scope.sum = function(items, prop){ return items.reduce( function(a, b){ return a + b[prop]; }, 0); }; $scope.totalAges = $scope.sum($scope.data, 'Age'); });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app='MyModule' ng-controller='MyController'> <p>totalAges = {{totalAges}}</p> </div>
尝试这个
var a = [{Name : 'Deji', Age: 12}, {Name : 'Sonia', Age : 13}, {Name : 'Fabio', Age: 21}];
var sum = 0;
for(var i of a){
sum += i.Age;
}
console.log(sum);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.