如何使用map将数组中对象的嵌套属性移至外层并重命名
如何用map方法提取数组对象的嵌套属性到外层
要实现把数组中每个对象的Courses.Code提取到外层并重命名为CourseCode,同时保留原对象所有属性的需求,用Array.map结合对象展开语法就能完成,具体实现如下:
核心实现代码
const transformedData = arrayData.map(item => ({ // 展开原对象的所有属性,保留原有内容 ...item, // 新增CourseCode属性,取值为嵌套的Courses.Code CourseCode: item.Courses.Code }));
完整示例演示
原数组
let arrayData = [ { Id: 1, Name: 'test1', CourseId: 23, Courses: { Id: 23, Code: 'MAT01', Name: 'Course1' } }, { Id: 2, Name: 'test2', CourseId: 24, Courses: { Id: 24, Code: 'MAT02', Name: 'Course2' } }]
执行转换代码后,得到的结果
// transformedData 的值为: [ { Id: 1, Name: 'test1', CourseId: 23, CourseCode: 'MAT01', Courses: { Id: 23, Code: 'MAT01', Name: 'Course1' } }, { Id: 2, Name: 'test2', CourseId: 24, CourseCode: 'MAT02', Courses: { Id: 24, Code: 'MAT02', Name: 'Course2' } }]
容错处理(可选)
如果数组中存在Courses属性为undefined的对象,可以用可选链操作符?.避免报错,还能给默认值:
const transformedData = arrayData.map(item => ({ ...item, CourseCode: item.Courses?.Code || '无课程代码' }));
内容的提问来源于stack exchange,提问作者erickterri
相关产品推荐
相关产品推荐

