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

如何使用Jolt Transform从员工列表中移除团队列表成员

如何用Jolt从employeelist中移除teamList里的成员

我有一个employeelist,需要从中移除teamList中的成员。teamList里的成员可能在employeelist中存在,也可能不存在。

示例输入

{
  "employeelist": [
    "john",
    "aaron",
    "mike"
  ],
  "teamList": [
    "rachel",
    "john"
  ]
}

期望输出

{
  "employeelist": [
    "aaron",
    "mike"
  ]
}

我之前尝试按特定值过滤,但不知道怎么获取剩余成员,当前用的Jolt规则是:

[
  {
    "operation": "shift",
    "spec": {
      "list2": {
        "*": "[#2].list[]"
      }
    }
  }
]

解决方法

可以通过shift和remove组合操作实现需求,具体Jolt规则如下:

[
  // 把teamList转成键值对,方便后续判断是否要排除
  {
    "operation": "shift",
    "spec": {
      "employeelist": "employeelist",
      "teamList": {
        "*": "excludeMap.&"
      }
    }
  },
  // 过滤employeelist,只保留不在excludeMap里的成员
  {
    "operation": "shift",
    "spec": {
      "employeelist": {
        "*": {
          "@(2,excludeMap.&)": {
            // 成员在排除列表里,直接丢弃
            "*": null
          },
          // 成员不在排除列表里,保留到新数组
          "#": "employeelist[]"
        }
      }
    }
  },
  // 删掉临时用的excludeMap,只留最终结果
  {
    "operation": "remove",
    "spec": {
      "excludeMap": ""
    }
  }
]

规则说明

  1. 第一个shift操作:将teamList的每个成员转为excludeMap的键(值和键名一致),同时保留原始的employeelist。
  2. 第二个shift操作:遍历employeelist的每个成员,检查该成员是否在excludeMap中。如果存在就设为null(丢弃),否则把成员名加入新的employeelist数组。
  3. 第三个remove操作:清理临时生成的excludeMap,只保留我们需要的employeelist。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:42:37