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

使用forEach遍历JS对象数组提取指定字段结果不符合预期的原因

错误原因分析

你使用的实现代码:

const result = myArray.forEach(el => ({el.data.name, el.data.age}));

你的代码存在两个核心问题:

  • Array.prototype.forEach() 方法仅用于遍历数组执行回调逻辑,没有返回值,执行后永远返回undefined,因此你把执行结果赋值给result变量,最终result的值只会是undefined,无法拿到转换后的新数组。这类数组映射转换的需求,应该使用专门用来生成新数组的Array.prototype.map()方法。
  • 回调函数的返回对象存在语法错误:({el.data.name, el.data.age})的写法不符合JavaScript对象字面量的语法规则。如果要使用对象属性简写,必须先把对应属性提取到独立变量中,否则需要显式写出键名,正确的返回写法应该是{name: el.data.name, age: el.data.age}。
正确实现代码
// 基础写法,逻辑清晰易读
const result = myArray.map(el => {
  return {
    name: el.data.name,
    age: el.data.age
  }
});

// 简化写法,通过嵌套解构简化代码
const result = myArray.map(({ data: { name, age } }) => ({ name, age }));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:06:02