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

如何将含重复字段的数组对象转换为单个合并对象?

实现方案

用JavaScript的Array.reduce()方法就能完成这个合并操作,核心逻辑是把name和type作为唯一标识分组,将同组的car、speed分别归集为数组:

通用代码(支持多组不同name/type的情况)

const input = [
    {
        "name": "name1",
        "type": "type1",
        "car": "car1",
        "speed": 1
    },
    {
        "name": "name1",
        "type": "type1",
        "car": "car2",
        "speed": 2
    }
];

// 分组合并
const grouped = input.reduce((result, item) => {
    const key = `${item.name}-${item.type}`;
    if (!result[key]) {
        result[key] = {
            name: item.name,
            type: item.type,
            car: [],
            speed: []
        };
    }
    result[key].car.push(item.car);
    result[key].speed.push(item.speed);
    return result;
}, {});

// 取出合并后的单个对象(如果只有一组的话)
const merged = Object.values(grouped)[0];
console.log(merged);

简化代码(仅当所有项的name/type完全相同时)

如果确定输入里所有对象的name和type都一致,直接这么写更省事:

const merged = {
    name: input[0].name,
    type: input[0].type,
    car: input.map(i => i.car),
    speed: input.map(i => i.speed)
};
console.log(merged);

输出结果

运行后都会得到目标结构:

{
  "name": "name1",
  "type": "type1",
  "car": ["car1", "car2"],
  "speed": [1, 2]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:05:21