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

如何在JavaScript中合并对象内的数组(适配amChart)

合并同ID父节点的JSON数据(适配amChart可折叠力导向树)

当然可以实现。你需要将具有相同ID和NAME的父节点合并,并把它们的children数组整合到一起。以下是用JavaScript实现的方案:

原始数据

[
    {
        "ID": "120",
        "NAME": "KRETEK",
        "children": [
            {
                "IDS": "01107",
                "VALUE": "6761114",
                "NAME": "GUD"
            }
        ]
    },
    {
        "ID": "120",
        "NAME": "KRETEK",
        "children": [
            {
                "IDS": "01108",
                "VALUE": "57904",
                "NAME": "POER"
            }
        ]
    }
]

处理代码

const originalData = [
    {
        "ID": "120",
        "NAME": "KRETEK",
        "children": [
            {
                "IDS": "01107",
                "VALUE": "6761114",
                "NAME": "GUD"
            }
        ]
    },
    {
        "ID": "120",
        "NAME": "KRETEK",
        "children": [
            {
                "IDS": "01108",
                "VALUE": "57904",
                "NAME": "POER"
            }
        ]
    }
];

// 用对象存储合并后的父节点,以ID为键
const mergedMap = {};

originalData.forEach(item => {
    const key = item.ID;
    if (!mergedMap[key]) {
        // 首次遇到该ID,直接存入对象
        mergedMap[key] = {
            ...item,
            children: [...item.children]
        };
    } else {
        // 已有该ID,合并children数组
        mergedMap[key].children.push(...item.children);
    }
});

// 将对象的值转为数组,得到最终结果
const mergedData = Object.values(mergedMap);
console.log(JSON.stringify(mergedData, null, 4));

处理后结果

[
    {
        "ID": "120",
        "NAME": "KRETEK",
        "children": [
            {
                "IDS": "01107",
                "VALUE": "6761114",
                "NAME": "GUD"
            },
            {
                "IDS": "01108",
                "VALUE": "57904",
                "NAME": "POER"
            }
        ]
    }
]

这段代码通过遍历原始数据,利用对象的键唯一性来合并相同ID的父节点,最终得到的mergedData就是你需要的格式,可直接用于amChart的可折叠力导向树图表。

内容的提问来源于stack exchange,提问作者Farich T Utomo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:31:22