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

Angular12中如何为单名称下的地址数组拼接地址字段

Angular 12 地址拼接解决方案

针对你提到的两种JSON结构,以下是修正后的TS处理逻辑,可实现正确的地址拼接:


第一种结构:单ProfileName下多索引地址数组处理

示例JSON结构

{
  "ProfileName": "John Doe",
  "AddressLine1": ["123 Main St", "456 Oak Ave"],
  "AddressLine2": ["Apt 4B", "Suite 100"],
  "AddressLine3": ["", ""],
  "AddressLine4": ["", ""],
  "City": ["New York", "Chicago"],
  "Zip": ["10001", "60601"],
  "State": ["NY", "IL"]
}

处理函数

formatSingleProfileAddresses(data: any): string[] {
  const addresses: string[] = [];
  // 以AddressLine1的长度为基准,确保索引完全对应
  const addressCount = data.AddressLine1?.length || 0;

  for (let i = 0; i < addressCount; i++) {
    // 过滤空地址行,避免多余逗号
    const validAddressLines = [
      data.AddressLine1[i],
      data.AddressLine2[i],
      data.AddressLine3[i],
      data.AddressLine4[i]
    ].filter(line => line?.trim());

    // 拼接地址主体+城市/州/邮编
    const addressBody = validAddressLines.join(', ');
    const cityStateZip = `${data.City[i]}, ${data.State[i]} ${data.Zip[i]}`;
    // 组合完整行(含ProfileName)
    addresses.push(`${data.ProfileName}: ${addressBody}, ${cityStateZip}`);
  }

  return addresses;
}

第二种结构:含LicenseInfo数组的地址处理

示例JSON结构

{
  "ProfileName": "Jane Smith",
  "LicenseInfo": [
    {
      "AddressLine1": "789 Pine Rd",
      "AddressLine2": "",
      "City": "Los Angeles",
      "Zip": "90001",
      "State": "CA"
    },
    {
      "AddressLine1": "321 Cedar Ln",
      "AddressLine2": "Unit 7",
      "City": "Houston",
      "Zip": "77001",
      "State": "TX"
    }
  ]
}

处理函数

formatLicenseAddresses(data: any): string[] {
  const addresses: string[] = [];

  if (data.LicenseInfo && Array.isArray(data.LicenseInfo)) {
    data.LicenseInfo.forEach(license => {
      // 过滤空地址行
      const validAddressLines = [
        license.AddressLine1,
        license.AddressLine2
      ].filter(line => line?.trim());

      const addressBody = validAddressLines.join(', ');
      // 组合完整行(含ProfileName和当前License的State)
      addresses.push(`${data.ProfileName}: ${addressBody}, ${license.City}, ${license.State} ${license.Zip}`);
    });
  }

  return addresses;
}

调用示例

// 处理第一种结构数据
const firstTypeData = { /* 第一种JSON数据 */ };
const firstResult = this.formatSingleProfileAddresses(firstTypeData);

// 处理第二种结构数据
const secondTypeData = { /* 第二种JSON数据 */ };
const secondResult = this.formatLicenseAddresses(secondTypeData);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:10:08