繁体   English   中英

如何使用angular / ionic来GROUP和SUM json数据?

[英]How to GROUP and SUM json data using angular/ionic?

我有一个看起来像这样的JSON对象:

  "Classes": [
    {
      "ID": "MATH101",
      "Class": "Math",
      "StudentCount": "2"
    },
    {
      "ID": "MATH101",
      "Class": "Math",
      "StudentCount": "8"
    },
    {
      "ID": "ENGLISH101",
      "Class": "English",
      "StudentCount": "13"
    }]

此JSON对象存储在$scope 如何首先按班级对数据分组,然后对StudentCount求和

因此,生成的JSON对象将类似于以下内容-理想情况下存储为新的作用域变量:

  "Classes": [
    {
      "ID": "MATH101",
      "Class": "Math",
      "StudentCount": "10"
    },
    {
      "ID": "ENGLISH101",
      "Class": "English",
      "StudentCount": "13"
    }]

我到处搜索过,并且唯一可以找到的示例是结合ng-repeat进行此操作的示例,但是我这里没有使用它。 我只需要按摩这些数据以用于angular-chartjs。

非常感谢您抽出宝贵时间来研究我的问题。

转换只是一个逻辑部分,您的ng-repeat以及您可以用来在UI中呈现所需内容的所有功能。

在这里,我正在编写一个可以为您完成工作的函数

function populateSumArray(inputClasses) {
    opClasses = [];
    inputClasses.forEach(function(item) {
        var existing = opClasses.find(function(each) {
            return each.Class === item.Class;
        });
        if (existing) {
            existing.StudentCount = parseInt(existing.StudentCount) + parseInt(item.StudentCount);
        } else {
            opClasses.push(item);
        }
    });
    return opClasses;
}

您可以调用此方法将其转换为新的数组(计算得出),并将其存储在所需的任何位置。 如果您想更新相同的作用域变量,那么这里是一个示例

$scope.Classes = populateSumArray($scope.Classes)

希望能帮助到你 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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