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

时间:2017-09-16 06:39:45

标签: javascript angularjs arrays function loops

下面是一个示例对象数组:

[{Name : Deji, Age: 12}, {Name : Sonia, Age 13}, {Name : Fabio, Age: 21}]

如何以增加数组中人员年龄的方式遍历数组。

是否有可以累计播放器年龄的功能?

4 个答案:

答案 0 :(得分:2)

使用Array#forEachArray#reduce迭代数组项,并将每个玩家的年龄添加到变量中。

<强>的forEach

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);

答案 1 :(得分:1)

&#13;
&#13;
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)
&#13;
&#13;
&#13;

使用forEach遍历每个对象,获取元素并访问Age属性,然后添加它。

答案 2 :(得分:1)

首先,你的JSON不是有效的,应该是,

  

[{       &#34;姓名&#34;:&#34; Deji&#34;,       &#34;年龄&#34;:12},{       &#34;姓名&#34;:&#34; Sonia&#34;,       &#34;年龄&#34;:13},{       &#34;姓名&#34;:&#34; Fabio&#34;,       &#34;年龄&#34;:21}]

使用angularjs,你可以使用 array.reduce 函数计算总数。

<强> DEMO

&#13;
&#13;
 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');
});
&#13;
<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>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

试试这个

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);