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

在JavaScript中将含嵌套数组的对象数组合并为单个数组

扁平化嵌套数组对象并统一字段格式

需求说明

将包含月份键的嵌套数组对象,转换为包含所有事件的单个数组,同时统一字段名(将iD改为ID)并清理event字段的多余空格。

实现代码

方法一:使用flatMap(简洁高效)

const arr = [
    {
        JUNE: [
            {
                "iD": "67854",
                "event": " closed",
                "title": "test",
                "startDate": "2024-06-20",
                "endDate": "2024-07-25"
            }
        ]
    },
    {
        MAY: [
            {
                "ID": "908765",
                "event": "closed",
                "title": "test",
                "startDate": "2024-05-21",
                "endDate": "2024-06-27"
            },
            {
                ID: "12345",
                event: "open",
                title: "test123",
                startDate: "2024-05-21",
                endDate: "2024-06-27"
            }
        ]
    }
];

const flattenedArr = arr.flatMap(item => {
    // 提取当前月份对应的事件数组
    const events = Object.values(item)[0];
    // 处理每个事件的字段格式
    return events.map(event => ({
        ID: event.iD || event.ID,
        event: event.event.trim(),
        title: event.title,
        startDate: event.startDate,
        endDate: event.endDate
    }));
});

console.log(flattenedArr);

方法二:使用reduce(兼容性更优)

如果环境不支持flatMap,可以用reduce替代:

const flattenedArr = arr.reduce((result, item) => {
    const events = Object.values(item)[0];
    const processedEvents = events.map(event => ({
        ID: event.iD || event.ID,
        event: event.event.trim(),
        title: event.title,
        startDate: event.startDate,
        endDate: event.endDate
    }));
    return result.concat(processedEvents);
}, []);

输出结果

执行上述代码后,将得到目标数组:

[
    {
        ID: "67854",
        event: "closed",
        title: "test",
        startDate: "2024-06-20",
        endDate: "2024-07-25"
    },
    {
        ID: "908765",
        event: "closed",
        title: "test",
        startDate: "2024-05-21",
        endDate: "2024-06-27"
    },
    {
        ID: "12345",
        event: "open",
        title: "test123",
        startDate: "2024-05-21",
        endDate: "2024-06-27"
    }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:56:00