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

JavaScript如何将嵌套数组转换为按组织分组的键控对象结构

实现方案

我们直接使用JavaScript内置的Array.reduce方法即可实现,代码简洁易读,无需编写复杂的循环判断逻辑,即使数组内的公司顺序打乱也能正确完成分组。

完整代码

// 原始数据
const rawData = [["Organisation","ID","Name"],["ACME","123456","Bart Simpson"],["ACME","654321","Ned Flanders"],["ACME","1234","Edna Kabappel"],["Yahoogle","666666","Bon Scott"],["Yahoogle","99999","Neil Young"],["Yahoogle","111111","Shania Twain"]]

// 分组逻辑
const result = rawData.slice(1).reduce((acc, [org, id, name]) => {
  // 若当前公司不存在于结果中,先初始化对应空数组
  if (!acc[org]) acc[org] = []
  // 插入当前人员数据,ID转数字类型匹配输出要求
  acc[org].push({ ID: Number(id), Name: name })
  return acc
}, {})

// 打印验证结果
console.log(JSON.stringify(result, null, 2))

逻辑说明

  • slice(1):跳过原始数组第一个表头子数组,直接处理后续业务数据
  • reduce方法的第二个参数{}是最终返回结果的初始值,为一个空对象
  • 代码中使用数组解构赋值,直接将每个子数组的三个元素分别命名为org(公司名)、id、name,无需手动取下标,可读性更高
  • 仅需要简单判断当前公司是否已存在于结果中,不存在就初始化数组,直接插入数据即可,无需对比前一项的公司名,适配所有排序的原始数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:57:06