跳到主要内容

条件分支

条件分支节点通过可视化条件构建器实现 if-else 逻辑分流。

概述

使用条件构建器可视化配置左值、操作符和右值,无需手写代码。满足条件走 True 分支,否则走 False 分支。

条件分支节点参数配置面板

使用方法

拖入节点后,在条件构建器中配置三项:

  • 左值:要判断的变量或常量,通常引用上游节点输出的变量,如 {{变量名}}
  • 操作符:选择判断方式,共 10 种(详见下方)
  • 右值:与左值比较的目标值。empty / not_empty 不需要右值

配置完成后,将 TrueFalse 两个输出端口分别连接到对应的下游节点。

操作符参考

== 等于

判断左值是否等于右值。

  • 比较规则:先做严格相等(===),不相等时转为字符串比较
  • 数组:逐元素递归比较,长度和每个元素都相同才视为相等
左值: "hello" 右值: "hello" → True
左值: 10 右值: "10" → True (转字符串后相等)
左值: [1,2] 右值: [1,2] → True
左值: [1,2] 右值: [2,1] → False (顺序不同)

!= 不等于

== 取反。左值不等于右值时返回 True。

> 大于

数值比较。左值大于右值时返回 True。

  • 左值为数组时取数组长度参与比较
  • 非数字值转换失败时视为 0
左值: 10 右值: 5 → True
左值: [1,2,3] 右值: 2 → True (数组长度 3 > 2)

< 小于

数值比较。左值小于右值时返回 True。规则同 >

>= 大于等于

数值比较。左值大于或等于右值时返回 True。规则同 >

<= 小于等于

数值比较。左值小于或等于右值时返回 True。规则同 >

contains 包含

判断左值是否包含右值。

  • 左值为数组:判断右值是否为数组中的某个元素
  • 左值为字符串:判断右值是否为子串
左值: "hello world" 右值: "world" → True
左值: ["a","b","c"] 右值: "b" → True
左值: [1,2,3] 右值: 4 → False

not_contains 不包含

contains 取反。左值不包含右值时返回 True。

empty 为空

判断左值是否为空。不需要填写右值

以下情况视为空:

左值类型为空的条件
字符串""(空字符串)
数组[](长度为 0)
对象{}(无属性)
其他null / undefined
左值: "" → True
左值: [] → True
左值: null → True
左值: "hello" → False
左值: [1,2] → False

not_empty 不为空

empty 取反。左值不为空时返回 True,同样不需要填写右值

关于类型转换

条件判断引擎会自动对左值做预处理:

  • JTCElement 值:自动提取元素的文本内容,去除首尾空白
  • 数组值:递归清洗内部每个元素的类型
  • 数值比较> < >= <=):数组取其长度,其他值调用 parseFloat,转换失败视为 0

注意==!= 比较失败时会降级为字符串比较,因此 10 == "10" 为 True。如果要严格区分类型,先在上游用「设置变量」的数据清理管道转换类型。

参数参考

参数类型默认值说明
判断条件ConditionBuilder可视化条件构建器,配置左值、操作符和右值

常见问题

contains 匹配不到子串

现象:字符串明显包含目标子串,却返回 False。

原因contains 对字符串比较是区分大小写的。"Hello" 包含 "ello" → True,但包含 "hello" → False。

解决:如果不需要区分大小写,先在上游用「设置变量」的数据清理管道将变量转为小写(lower 操作符),再做比较。

数值比较结果异常

现象:左值是数字字符串,数值比较结果与预期不符。

原因> < >= <= 内部用 parseFloat 转换。parseFloat("abc") 返回 NaN,被兜底为 0,导致 "abc" > 5 实际变成 0 > 5 → False。

解决:确保参与数值比较的左值确为数字。可在上游用「设置变量」的 toNumber 操作符转换。