Angular循环中的分组和摘要

时间:2018-01-30 19:42:49

标签: javascript angularjs ionic-framework

我的数据格式如下:

[{id: 178, uid: "1", when: "2018-01-17", gingerbread: "75", created_at: "2018-01-..., 
{id: 179, uid: "1", when: "2018-01-17", gingerbread: "32", created_at... }];

如果我想* ngFor循环遍历这些对象的数组并找到gingerbreadwhen的总和,那么有人可以了解最好的方法吗?

3 个答案:

答案 0 :(得分:1)

你可以这样在控制器中:

var myArray = [{id: 178, uid: "1", when: "2018-01-17", gingerbread: "75", created_at: "2018-01-..., 
          {id: 179, uid: "1", when: "2018-01-17", gingerbread: "32", created_at... }];
$scope.totals = {};
for (var i = 0; i < myArray.length; i++) {
   $scope.totals[myarray[i].when] +=  +myarray[i].gingerbread; //use '+' to coerce a number
}

然后循环遍历HTML中的$scope.totals对象(您可能还需要将对象键/值对放入对象数组中)

答案 1 :(得分:0)

您应该在控制器或服务器端执行此操作。视图用于显示数据,而不是数学。

答案 2 :(得分:0)

You can make use of this approach, where you can specify your "when" condition here in the if loop.
---
var obj = [
    {id: 178, uid: "1", when: "2018-01-17", gingerbread: "75", created_at: "2018-01-01"},
    {id: 179, uid: "1", when: "2018-01-17", gingerbread: "32", created_at: "2018-01-01"},
    {id: 180, uid: "1", when: "2018-02-18", gingerbread: "24", created_at: "2018-02-18"}
];

var sum = 0;

for(var i=0;i<obj.length;i++){
 if(obj[i].when === "2018-01-17") {
  sum += parseInt(obj[i].gingerbread);
 } 
}
alert(sum);