React前端传数组至Node API,需转换格式适配MySQL批量INSERT
解决数组拆分生成批量INSERT数据的问题
你不需要用splice,因为splice是用来修改原数组的(比如删除、插入元素),而我们这里需要生成新数组,用map和对象展开运算符就能轻松搞定,步骤很简单:
实现步骤
- 先拿到原数组里的课程对象(因为前端传的是只有1个元素的数组)
- 遍历这个对象里的
studentList,给每个学生生成一条包含课程信息+学生ID的新数据 - 把这些新数据收集成数组,就是你要的最终结果
代码示例
// 假设前端传来的数据是这个变量 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
相关产品推荐
相关产品推荐

