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

JavaScript拆解嵌套数组生成新数组时无法获取jobTitle问题

问题根因

Array.prototype.forEach() 方法没有返回值,执行后永远返回 undefined,你将 item.job.forEach(item => item.jobTitle) 的执行结果直接赋值给 jobTitle,自然无法获取到预期的属性值。

修复方案

方案1:沿用forEach写法

如果确认每个元素的job数组永远只有1个元素,直接取数组下标为0的元素属性即可:

const newArray = [];
data.forEach(item => {
  newArray.push({
    name: item.name,
    jobTitle: item.job[0].jobTitle
  })
})
console.log(newArray);

如果要兼容job数组为空的场景,可以加可选链兜底,避免运行时报错:

jobTitle: item.job[0]?.jobTitle ?? ''

方案2:使用map方法(更推荐)

数组转换类的需求更适合用map方法实现,代码更简洁:

const newArray = data.map(item => ({
  name: item.name,
  jobTitle: item.job[0].jobTitle
}))
console.log(newArray);

两种方案运行后都可以输出你预期的结果:

[
  { name: 'Emma', jobTitle: 'Teacher' },
  { name: 'Charlotte', jobTitle: 'programmer' },
  { name: 'Amelia', jobTitle: 'Doctor' }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:30:01