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

JavaScript中如何用forEach按索引遍历嵌套数组生成目标JSON结构

聚合嵌套数组的实现方案

核心逻辑是通过映射表缓存已创建的父级对象,避免重复生成相同name的父项:

  • 先定义固定的颜色映射配置,保证同name父项的颜色一致
const colorMap = {
  Data1: "#4473C2",
  Data2: "#EB7D30"
};
  • 声明临时映射对象和最终结果数组,遍历你当前生成的单层数组做聚合:
// 你当前输出的单层数组替换为实际的变量名即可
const flatResult = [/* 你现在得到的单层数组 */];
const parentMap = {};
const targetResult = [];

flatResult.forEach(item => {
  // 父项不存在时新建并缓存
  if (!parentMap[item.name]) {
    const newParent = {
      name: item.name,
      color: colorMap[item.name],
      data: []
    };
    parentMap[item.name] = newParent;
    targetResult.push(newParent);
  }
  // 子项存入对应父项的data数组
  parentMap[item.name].data.push(item.data[0]);
});
  • 最终targetResult就是符合预期的聚合结构。如果要在原有生成单层数组的逻辑里直接优化,只需要把生成新父项的逻辑替换为上述映射判断逻辑即可,无需先生成单层数组再二次处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:15:02