You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于API返回对象列表的唯一term分组创建嵌套列表

按Term分组学生成绩的实现方案

需求说明

从给定的API响应中,将detail数组里的成绩对象按唯一的term(比如「年度考试」「开卷测试1」)分组,生成[[对应term的成绩对象列表], ...]的嵌套结构,方便按学期在表格中展示数据。

处理步骤(以JavaScript为例)

  1. 先从API响应中提取目标成绩数组:const scores = apiResponse.data[0].detail;
  2. 使用reduce方法按term分组:
// 先按term分组为对象(键是term,值是对应成绩数组)
const groupedByTermObj = scores.reduce((acc, score) => {
  const term = score.term;
  if (!acc[term]) {
    acc[term] = [];
  }
  acc[term].push(score);
  return acc;
}, {});

// 把对象的值转换成嵌套数组,就是最终需要的结构
const groupedScores = Object.values(groupedByTermObj);

分组后的结果

[
  [
    {"marksObtained":0,"title":"Annual Exams English ( 100 )","term":"Annual Exams","subjectName":"English","maxMarks":100,"minMarks":33,"grade":"D"},
    {"marksObtained":22,"title":"Annual Exams Hindi ( 100 )","term":"Annual Exams","subjectName":"Hindi","maxMarks":100,"minMarks":33,"grade":"D"},
    {"marksObtained":55,"title":"Annual Exams Marathi ( 100 )","term":"Annual Exams","subjectName":"Marathi","maxMarks":100,"minMarks":33,"grade":"C+"},
    {"marksObtained":90,"title":"Annual Exams Gujarati ( 100 )","term":"Annual Exams","subjectName":"Gujarati","maxMarks":100,"minMarks":33,"grade":"A+"}
  ],
  [
    {"marksObtained":89,"title":"Open Book Test 1 Hindi ( 150 )","term":"Open Book Test 1","subjectName":"Hindi","maxMarks":150,"minMarks":100,"grade":"A"},
    {"marksObtained":95,"title":"Open Book Test 1 English ( 100 )","term":"Open Book Test 1","subjectName":"English","maxMarks":100,"minMarks":50,"grade":"A+"},
    {"marksObtained":98,"title":"Open Book Test 1 Gujarati ( 400 )","term":"Open Book Test 1","subjectName":"Gujarati","maxMarks":400,"minMarks":10,"grade":"A+"}
  ]
]

额外优化(可选)

如果需要同时保留term名称作为表格标题使用,可以调整结果结构为[{ term: "xxx", scores: [...] }, ...],代码修改如下:

const groupedWithTerm = Object.entries(groupedByTermObj).map(([term, scores]) => ({ term, scores }));

内容的提问来源于stack exchange,提问作者Zaid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:56:08