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

React前端传数组至Node API,需转换格式适配MySQL批量INSERT

解决数组拆分生成批量INSERT数据的问题

你不需要用splice,因为splice是用来修改原数组的(比如删除、插入元素),而我们这里需要生成新数组,用map和对象展开运算符就能轻松搞定,步骤很简单:

实现步骤

  1. 先拿到原数组里的课程对象(因为前端传的是只有1个元素的数组)
  2. 遍历这个对象里的studentList,给每个学生生成一条包含课程信息+学生ID的新数据
  3. 把这些新数据收集成数组,就是你要的最终结果

代码示例

// 假设前端传来的数据是这个变量
const inputData = [
  {
    subjectID: '2',
    studentList: [ { studentID: '244' }, { studentID: '245' } ],
    subjectTitle: 'Physics',
    subjectLevel: 'IGCSE Level',
    syllabusCode: '0625',
    subjectGroup: 'Humanities'
  }
];

// 第一步:取出数组里的课程对象
const course = inputData[0];

// 第二步:遍历studentList生成新数组
const result = course.studentList.map(student => {
  // 展开课程对象的所有属性,再加上studentID
  return {
    ...course,
    studentID: student.studentID
  };
});

// 第三步:移除不需要的studentList属性
const finalResult = result.map(item => {
  const { studentList, ...rest } = item;
  return rest;
});

console.log(finalResult);

代码简化版

如果觉得上面的步骤太繁琐,可以合并成一行:

const finalResult = inputData[0].studentList.map(student => {
  const { studentList, ...courseInfo } = inputData[0];
  return { ...courseInfo, studentID: student.studentID };
});

这样得到的finalResult就是你期望的数组,直接用forEach遍历执行MySQL INSERT即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:15:38