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

如何在JavaScript中遍历二维数组并提取指定对象数组?

员工数组提取指定字段问题解决

问题背景

你有一个存储员工信息的二维数组,结构如下:

[
   [
      "14578", // 员工编号
      "Marc", // 员工姓名
      "Paris", // 所在城市
      "ENGINEER", // 职位
      "24578963", // 薪资
      "A" // 所属团队
   ],
   [
      "81832",
      "Alan",
      "Marseille",
      "MECHANIC",
      "25578963",
      "C"
   ],
   [
      "39629",
      "John",
      "Lyon",
      "PLUMBER",
      "26578963",
      "F"
   ]
]

需要提取每个子数组的第一个元素(员工编号)和第四个元素(职位),预期输出:

[{"employee number": "14578","employee position": "ENGINEER"}, {"employee number": "81832","employee position": "MECHANIC"}, {"employee number": "39629","employee position": "PLUMBER"}]

你尝试了以下map代码,但未得到预期结果:

const myExtractArray = myInitialArray.map( elt =>
       {
       "employee number" : elt[0],
       "employee number":elt[3]
       return elt
       }
    );

问题出在哪

  1. 键名重复且错误:两次使用"employee number"作为键,后面的elt[3]会覆盖前面的elt[0],且完全没用到employee position这个对应职位的正确键名。
  2. 返回值错误:map回调里返回的是原数组元素elt,而非需要的新对象,等于没有完成映射转换。
  3. 箭头函数语法疏漏:当箭头函数用大括号包裹函数体时,需明确写return,且对象字面量若直接作为返回值,需用小括号包裹避免被解析为代码块(你这里虽写了return,但返回内容错误)。

正确写法

写法1:简洁箭头函数返回对象

用小括号包裹对象字面量,直接返回新构建的目标对象:

const myExtractArray = myInitialArray.map(elt => ({
  "employee number": elt[0],
  "employee position": elt[3]
}));

写法2:明确返回新对象

若习惯用大括号,手动返回构建好的对象即可:

const myExtractArray = myInitialArray.map(elt => {
  return {
    "employee number": elt[0],
    "employee position": elt[3]
  };
});

两种写法都能生成符合预期的数组,核心是:给每个字段使用正确的唯一键名,在map回调中返回新构建的对象而非原数组元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 23:36:38