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

按条件删除嵌套对象数组中accmp为null的duties_details项(排除COMPRO1类)

问题原因分析

你的代码存在以下几个核心问题导致返回undefined:

  • 外层map没有显式返回值:符合class_id != "COMPRO1"条件的条目处理后没有返回,不符合条件的条目也没有原样返回,最终遍历结果全是undefined
  • 过滤逻辑写反:你需要删除accmp为null的项,实际代码写的是筛选保留e.accmp == null的项,和需求完全相反
  • 多余嵌套逻辑:不需要对duties_details做map遍历,直接对整个数组做filter即可
  • 结构适配错误:原始数据每个外层数组元素是仅包含单个职位对象的子数组,处理后需要保持原有结构返回
修正后代码
const filterDRData = DRData ? DRData.map(drGroup => {
  const position = drGroup[0];
  // class_id为COMPRO1的条目直接原样返回
  if (position.class_id === "COMPRO1") {
    return drGroup;
  }
  // 其他条目过滤duties_details,仅保留accmp不为null的项
  const processedPosition = {
    ...position,
    duties_details: position.duties_details.filter(item => item.accmp !== null)
  };
  // 保持原始结构,返回包裹对象的数组
  return [processedPosition];
}) : null;
逻辑说明
  • 输出数据和原始输入数据结构完全一致,不会破坏原有格式
  • 仅class_id不为COMPRO1的条目会过滤duties_details数组,过滤后自动剔除所有accmp为null的项
  • 基于对象展开生成新对象,不会修改原始数据,避免原数据被意外污染

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:54:04