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

如何转换对象数组结构并生成新对象发送后端?

解决方案

可以通过遍历原数组,逐个处理每个对象生成对应的两个question项,再组合成目标结构。以下是JavaScript实现代码:

const inputData = [
    {
        "messageType": "test",
        "eligibleUsers": "test2",
        "rules": [
            {"ruleId": "qwer", "value": "qwert"},
            {"ruleId": "testing", "value": "testing"},
            {"ruleId": "newtest", "value": "newtesting"}
        ]
    },
    {
        "messageType": "add",
        "eligibleUsers": "newadd",
        "rules": [{"ruleId": "qaz", "value": "qaz"}]
    },
    {
        "messageType": "neww",
        "eligibleUsers": "add",
        "rules": [
            {"ruleId": "data", "value": "data1"},
            {"ruleId": "data2", "value": "dat3"}
        ]
    }
];

// 初始化结果结构
const result = { questions: [] };

inputData.forEach((item, index) => {
    // 生成第一个question:基于messageType和ruleId
    const question1 = {
        ques: item.messageType,
        rules: item.rules.map(rule => ({ rule: rule.ruleId }))
    };
    // 第一个对象的question1需要额外字段
    if (index === 0) {
        Object.assign(question1, {
            id: null,
            type: "dropdown",
            message_user_type: "self"
        });
    }
    result.questions.push(question1);

    // 生成第二个question:基于eligibleUsers和value
    const question2 = {
        ques: item.eligibleUsers,
        rules: item.rules.map(rule => ({ rule: rule.value }))
    };
    // 第一个对象的question2需要额外字段
    if (index === 0) {
        Object.assign(question2, {
            id: null,
            type: "dropdown",
            message_user_type: "emp"
        });
    }
    result.questions.push(question2);
});

console.log(JSON.stringify(result, null, 4));

代码说明

  • 遍历原数组中的每个对象,每个对象会生成两个question项;
  • 第一个question的ques取自messageType,rules由原rules数组的ruleId转换而来;
  • 第二个question的ques取自eligibleUsers,rules由原rules数组的value转换而来;
  • 仅原数组中第一个对象生成的两个question需要添加id、type、message_user_type这三个额外字段。

运行上述代码后,输出结果与你期望的结构完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:13:17