繁体   English   中英

如何遍历对象数组并累加属性

[英]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#forEachArray#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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM