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

JavaScript如何格式化API响应数据,将用户邮箱映射到字段修改记录

实现代码调整方案

直接以用户邮箱作为结果对象的键,遍历修改记录数组整理对应字段即可,以下是JavaScript实现参考:

参考的API返回结构(可根据你实际返回的字段名修改匹配)

const finalUpdate = {
  userEmail: "test@example.com", // 实际接口返回的用户邮箱字段名
  field: [ // 3次修改记录数组
    { key: "car_brand", value: "比亚迪", operateTime: "2024-06-10 12:00:00", editable: true, type: "string" },
    { key: "car_price", value: 189800, operateTime: "2024-06-10 12:01:12", editable: true, type: "number" },
    { key: "car_color", value: "山脉灰", operateTime: "2024-06-10 12:02:35", editable: false, type: "string" }
  ]
}

调整后的处理代码

const formatResult = {}
// 绑定邮箱为根键,映射整理修改记录
const userEmail = finalUpdate.userEmail
formatResult[userEmail] = finalUpdate.field.map(record => {
  return {
    字段键名: record.key,
    取值: record.value,
    操作时间: record.operateTime,
    可编辑状态: record.editable,
    字段类型: record.type
  }
})

输出结果格式示例

{
  "test@example.com": [
    {
      "字段键名": "car_brand",
      "取值": "比亚迪",
      "操作时间": "2024-06-10 12:00:00",
      "可编辑状态": true,
      "字段类型": "string"
    },
    // 剩余两次修改记录以此类推
  ]
}
  • 如果邮箱字段是存在每一条修改记录的字段里,直接用reduce聚合即可,对应代码如下:
const formatResult = finalUpdate.field.reduce((acc, record) => {
  const email = record.userEmail // 每条记录里的邮箱字段名
  if (!acc[email]) acc[email] = []
  acc[email].push({
    字段键名: record.key,
    取值: record.value,
    操作时间: record.operateTime,
    可编辑状态: record.editable,
    字段类型: record.type
  })
  return acc
}, {})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:45:05