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

如何为数组每个对象匹配添加对应单个保单编号?

问题:为旅行者信息匹配对应保单编号

我有两个数组travelersInfo和generatedPolicyNumbers,各自包含3个元素,想要给travelersInfo中的每个对象添加对应的单个policyNumber属性。但当前代码执行后,每个对象的policyNumber都被赋值为所有保单编号组成的数组,而非单个对应编号,需要修正代码实现对应匹配的效果。

原代码

const travelersInfoWithPolicyNumbers = payload.travelersInfo.map((traveler) => ({
  ...traveler,
  policyNumber: generatedPolicyNumbers.map(
    (policyNumber: { policyNumber: string }) => policyNumber.policyNumber
  ),
}))

原始数据

payload.travelersInfo

[
    {
        firstName: 'test',
        lastName: 'test',
        age: 30
       },
       {
        firstName: 'test1',
        lastName: 'test1',
        age: 35
       },
    {
     firstName: 'test2',
     lastName: 'test2',
     age: 50
    }
  ]

generatedPolicyNumbers

[
  {
    "policyNumber": "TRB200"
  },
  {
    "policyNumber": "TRB201"
  },
  {
    "policyNumber": "TRB202"
  }
]

实际输出

[
    {
        firstName: 'test',
        lastName: 'test',
        age: 30,
        policyNumber: [
            "TRB200",
            "TRB201",
            "TRB202"
          ]
       },
       {
        firstName: 'test1',
        lastName: 'test1',
        age: 35,
        policyNumber: [
            "TRB200",
            "TRB201",
            "TRB202"
          ]
       },
    {
     firstName: 'test2',
     lastName: 'test2',
     age: 50,
     policyNumber: [
        "TRB200",
        "TRB201",
        "TRB202"
      ]
    }
  ]

预期输出

[
    {
        firstName: 'test',
        lastName: 'test',
        age: 30,
        policyNumber: "TRB200",
       },
       {
        firstName: 'test1',
        lastName: 'test1',
        age: 35,
        policyNumber: "TRB201",
       },
    {
     firstName: 'test2',
     lastName: 'test2',
     age: 50,
     policyNumber: "TRB202",
    }
  ]

修正方案

原代码的问题在于:遍历travelersInfo时,又对generatedPolicyNumbers做了一次完整的map,导致每个旅行者对象都拿到了所有保单号组成的数组。正确的做法是利用map方法的第二个参数——当前元素的索引,通过索引直接匹配对应位置的保单号。

修正后的代码:

const travelersInfoWithPolicyNumbers = payload.travelersInfo.map((traveler, index) => ({
  ...traveler,
  policyNumber: generatedPolicyNumbers[index].policyNumber
}))

说明

map方法的第二个参数index代表当前遍历到的旅行者在数组中的位置,用这个索引去generatedPolicyNumbers中取出对应位置的保单号对象,再提取其policyNumber属性,就能实现每个旅行者匹配对应单个保单编号的效果。

执行修正后的代码,即可得到预期的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:15:37