javascript - 如何使用 Angular/ionic 对 json 数据进行分组和求和?

标签 javascript angularjs json ionic-framework

我有一个如下所示的 JSON 对象:

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

此 JSON 对象存储在 $scope 中。 如何首先按类(class)对数据进行分组,然后对学生人数求和?

因此生成的 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)

希望有帮助:)

关于javascript - 如何使用 Angular/ionic 对 json 数据进行分组和求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44979514/

相关文章:

java - 为什么我会收到 Json Malformed Exception

javascript - 使用 Highcharts.js 创建打卡样式图

javascript - Tumblr:创建自定义主页

angularjs - appCache更新时如何刷新部分 View ?

javascript - 如何在 Calendario 中设置 JSON 数据?

javascript - 使用 $.post 回调生成 html 后未注册事件

javascript - ReactJS 将对象数组添加到对象数组中并在对象数组中添加对象

javascript - Bootstrap 3 : Cant make two affix side bars

xmlhttprequest - AngularJS 和位于不同域上的 Jersey Web 服务之间的通信。无法访问正确的 session

javascript - 如何防止 jwt token 在 angularjs 应用程序的页面刷新时丢失?