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

如何将对象数组的嵌套数组转换为带唯一ID的单对象数组?

嵌套数组转换最优解法

实现思路

利用数组的map方法做线性遍历,同时借助遍历索引生成唯一ID,通过计算属性名将原对象的prop1值作为新对象的键、prop2值作为对应值,一步完成转换,时间复杂度为O(n),是效率最高的实现方式。

代码实现

首先定义原嵌套数组:

const originalArray = [
  [
    {
      prop1: 'FieldName', 
      prop2: 'FieldValue'
    }
  ],
  [
    {
      prop1: 'OtherFieldName',
      prop2: 'OtherFieldValue'
    }
  ]
];

执行转换逻辑:

const transformedArray = originalArray.map((subArr, idx) => {
  const { prop1, prop2 } = subArr[0];
  return {
    id: idx + 1,
    [prop1]: prop2
  };
});

转换结果

运行后得到目标格式的数组:

[
  {
    id: 1, 
    FieldName: 'FieldValue'
  },
  {
    id: 2, 
    OtherFieldName: 'OtherFieldValue'
  }
]

补充说明

如果原数组的子数组可能包含多个对象(当前题目中每个子数组仅含一个),可以先通过flat()方法扁平化数组后再处理,示例如下:

// 处理子数组多对象的情况
const transformedArray = originalArray.flat().map((item, idx) => ({
  id: idx + 1,
  [item.prop1]: item.prop2
}));

内容的提问来源于stack exchange,提问作者Mantas Sutkevičius

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:13:14