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

如何将数组中的手机号和邮箱投影为独立文档字段?

问题描述

需要将包含嵌套数组的用户信息结构,转换为把邮箱、手机号拆分为独立字段的扁平结构:

原始结构:

const originalData = {
  Name: "Mac",
  Emails: [
    {address: 'mac@mac.com', title: '', isMain: true},
    {address: 'mac@ism.com', title: '', isMain: false}
  ],
  Phones: [
    {number: '6465468794984', title: '', isMain: true},
    {number: '6465468794986', title: '', isMain: false}
  ]
};

目标结构:

{
  Name: "Mac",
  Email1: 'mac@mac.com',
  Email2: 'mac@ism.com',
  Phone1: '6465468794984',
  Phone2: '6465468794986'
}
实现方案

以JavaScript为例,可通过遍历数组、动态生成字段的方式完成转换:

function transformData(data) {
  // 初始化结果对象,保留原始Name字段
  const result = { Name: data.Name };
  
  // 处理邮箱数组,生成EmailN字段
  data.Emails.forEach((email, index) => {
    result[`Email${index + 1}`] = email.address;
  });
  
  // 处理手机号数组,生成PhoneN字段
  data.Phones.forEach((phone, index) => {
    result[`Phone${index + 1}`] = phone.number;
  });
  
  return result;
}

// 调用示例
const transformedData = transformData(originalData);
console.log(transformedData);

说明

  • 遍历Emails和Phones数组,根据元素索引生成对应的EmailN、PhoneN字段
  • 直接提取数组项中的address和number值,赋值给新字段
  • 保留原始的Name字段,最终返回扁平结构的对象

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:36:01