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

如何在JavaScript中将含单个对象的数组拆分为多对象数组

实现数组对象拆分方案

可以通过以下JavaScript代码实现需求:

const originalArray = [{
  "0key1": "a33",
  "0key2": "Aab",
  "0key3": "i",
  "1key1": "e78",
  "1key2": "Vib",
  "1key3": "j",
  "2key1": "c99",
  "2key2": "Aig",
  "2key3": "k"
}];

// 取出原数组中的单个对象
const originalObj = originalArray[0];
// 存储分组后的结果
const result = [];

// 遍历对象的所有键
Object.keys(originalObj).forEach(key => {
  // 提取键的数字前缀(如"0key1"中的"0")
  const prefix = key.match(/^\d+/)[0];
  // 检查结果数组中是否已有对应前缀的对象
  let targetObj = result.find(item => Object.keys(item)[0].startsWith(prefix));
  
  if (!targetObj) {
    // 无对应对象则新建并推入结果数组
    targetObj = {};
    result.push(targetObj);
  }
  // 将当前键值对添加到目标对象
  targetObj[key] = originalObj[key];
});

console.log(result);

代码说明:

  • 先从原数组中取出唯一的对象作为操作主体。
  • 通过Object.keys()获取对象所有键,遍历每个键时提取开头的数字前缀。
  • 检查结果数组中是否存在以该前缀开头的对象,不存在则创建新对象加入数组。
  • 将当前键值对添加到对应前缀的对象中,最终得到分组后的目标数组。

运行代码后输出结果如下:

[
  {"0key1":"a33","0key2":"Aab","0key3":"i"},
  {"1key1":"e78","1key2":"Vib","1key3":"j"},
  {"2key1":"c99","2key2":"Aig","2key3":"k"}
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 21:00:07