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

如何将数组转换为含固定myid嵌套对象的目标对象结构?

实现方法

核心逻辑分三步,原生JS即可实现,无需引入额外工具库:

  • 拷贝原payload顶层所有非myids字段,保持原有键值不变
  • 把原myids数组类型的值替换为对象,按要求插入固定的myid中间层节点
  • 处理数组内的元素:取出数组首项(匹配给出的单元素目标结构),把元素内的label字段重命名为value,其余属性原样保留,放入myid节点下

代码示例
// 原始payload
const originalPayload = {
    "key": "value",
    "key2": "value2",
    "myids": [
        {
            "key": "value",
            "num": 123,
            "label": "equal"
        }
    ]
}

// 提取myids数组首项,拆分出label字段和其余属性
const [firstMyidItem] = originalPayload.myids
const { label, ...itemRestProps } = firstMyidItem

const convertedPayload = {
    // 保留原对象除myids外的所有顶层属性
    ...Object.fromEntries(
        Object.entries(originalPayload).filter(([key]) => key !== 'myids')
    ),
    // 构造固定嵌套层级
    myids: {
        myid: {
            ...itemRestProps,
            value: label // 原label字段映射为value
        }
    }
}

转换后输出结果完全匹配目标结构:

{
    "key": "value",
    "key2": "value2",
    "myids": {
        "myid": {
            "key": "value",
            "num": 123,
            "value": "equal"
        }
    }
}

如果原myids数组包含多个元素,可以根据业务需求调整逻辑:比如遍历数组将所有元素按索引/业务id作为键放在myid层级下,当前逻辑完全匹配给出的单元素转换场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:42:13