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

如何将JavaScript对象数组转换为指定键值对结构(适配React Chart JS 2)

如何将嵌套数组重构为React Chart JS 2所需的扁平格式?

你可以通过结合Array.map()和Array.forEach()(或Array.reduce())完成数据结构转换,下面是两种适合新手理解的简单实现方式:

方法1:map + forEach(逻辑更直观)

先遍历原数组的每个年份项,再逐个处理等级数据的键值对:

const charData = [
    {
        "year": "2020",
        "value": [
            { "levelName": "Platinum", "yearlyCount": "1074" },
            { "levelName": "Gold", "yearlyCount": "1847" },
            { "levelName": "Silver", "yearlyCount": "4804" }
        ]
    }
];

const transformedData = charData.map(item => {
    // 初始化包含年份的基础对象
    const formattedItem = { year: item.year };
    // 遍历等级数据,把levelName作为键、yearlyCount作为值添加到对象中
    item.value.forEach(level => {
        formattedItem[level.levelName] = level.yearlyCount;
    });
    return formattedItem;
});

console.log(transformedData);
// 输出结果与目标结构完全一致

方法2:map + reduce(代码更简洁)

用reduce直接合并嵌套的等级数据到初始对象中:

const transformedData = charData.map(item => {
    // 以含年份的对象为初始值,通过reduce合并所有等级键值对
    return item.value.reduce((acc, level) => {
        acc[level.levelName] = level.yearlyCount;
        return acc;
    }, { year: item.year });
});

两种方法最终都会输出你需要的目标结构,转换后的数据可直接用于React Chart JS 2的配置项中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:35:27