我有一个看起来像这样的JSON对象:
"Classes": [
{
"ID": "MATH101",
"Class": "Math",
"StudentCount": "2"
},
{
"ID": "MATH101",
"Class": "Math",
"StudentCount": "8"
},
{
"ID": "ENGLISH101",
"Class": "English",
"StudentCount": "13"
}]
此JSON对象存储在$scope
中。
我如何首先按 Class 对数据进行分组,然后将 StudentCount 包括在内?
因此生成的JSON对象看起来像这样 - 理想情况下存储为新的范围变量:
"Classes": [
{
"ID": "MATH101",
"Class": "Math",
"StudentCount": "10"
},
{
"ID": "ENGLISH101",
"Class": "English",
"StudentCount": "13"
}]
我到处搜索过,我唯一能找到的就是与ng-repeat
一起做这件事的例子,但我在这里没有使用它。我只需按摩这些数据就可以在angular-chartjs中使用。
非常感谢你花时间看我的问题。
答案 0 :(得分:1)
转换只是一个逻辑部分,您的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)
希望,这有助于:)