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

如何修改JS map遍历逻辑 按员工单条协议生成对应表格行

代码修改方案

原来的写法直接遍历员工数组,每个员工只生成1行表格数据,没法适配单员工多协议的多行展示需求。

直接把外层的map换成flatMap即可实现需求:外层遍历到每个员工对象时,再遍历该员工名下的agreements协议数组,为每一条协议单独生成1行表格数据,所有行都重复填充当前员工的公共字段(比如full_name),协议相关字段逐行取当前遍历到的单条协议数据填充即可。flatMap会自动把每个员工返回的多行协议数组拍平成一维的表格行数组,不需要额外做数组扁平化处理。

修改后的代码参考:

export const formatAgreementsData = (t, agreementsData, statesList) => 
  agreementsData.flatMap((item) => 
    // 遍历当前员工的所有协议,单条协议对应1行表格
    (item.agreements || []).map((singleAgreement) => ({
      [t("tables:headers.name")]: item.full_name,
      [t("tables:headers.title")]: singleAgreement.agreement_title,
      // 其余协议相关字段从singleAgreement上取值,按原有业务逻辑补充即可
      // ...
    }))
  );

代码里加了item.agreements || []的兜底处理,遇到员工名下无协议数据的边界场景不会抛出遍历报错,无协议时不会为该员工生成任何表格行。如果需要无协议的员工也展示1行空协议行,把兜底逻辑调整下即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:39:18