我有一个如下所示的 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/