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

如何使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:15:35