跳转到内容

循环节点

循环节点允许您通过迭代处理数组中的每个元素,并对其应用转换或操作。它的工作方式类似于JavaScript的map()函数,输入一个数组,输出一个经过处理的数组。

概述

循环节点创建一个子工作流,对输入数组中的每个项目执行一次。每次迭代处理一个数组元素并产生相应的输出元素,保持相同的数组结构。

节点面板中的循环节点

循环工作原理

可以将循环节点理解为JavaScript中的["x","y"].map()函数:

  • 输入:一个值的数组
  • 处理:每个数组元素都通过子工作流进行处理
  • 输出:一个新数组,其中每个元素对应处理后的结果

循环节点包含一个嵌入式子工作流,由两个必需的节点组成:

  1. 开始循环一次 - 每个循环周期的入口点
  2. 结束循环一次 - 定义每次迭代输出的出口点

子工作流结构

循环子工作流结构

每个循环节点都包含:

开始循环一次节点

此节点为每次迭代提供两个变量:

  • $循环开始.item - 当前数组元素的值
  • $循环开始.index - 当前数组元素的索引(从0开始)

结束循环一次节点

此节点决定每次迭代返回的内容。此节点导出的值将成为输出数组中的相应元素。 结束循环一次配置

配置每次迭代要导出的数据。所选的输出变量决定了最终结果数组中的内容。

配置说明

循环节点配置

节点名称

为您的循环操作设置一个描述性名称。

循环变量

选择包含要迭代的数组的变量。变量必须是:

  • 数组类型(可解析为JSON数组)
  • 例如:["a", "b", "c"]将迭代3次
  • 非数组类型的值将被视为单元素数组

循环间隔

设置迭代之间的延迟时间,单位为秒。默认为0(无延迟)。

输出

循环节点输出$循环1.result - 包含每次迭代结果的数组。

使用案例示例

1. 文本处理

处理字符串数组,对每个字符串应用转换:

  • 输入:["hello", "world", "flowai"]
  • 子工作流:转换为大写
  • 输出:["HELLO", "WORLD", "FLOWAI"]

2. 数据丰富

用附加信息增强数组数据:

  • 输入:[{"id": 1}, {"id": 2}, {"id": 3}]
  • 子工作流:为每个ID获取用户详细信息
  • 输出:[{"id": 1, "name": "John"}, {"id": 2, "name": "Jane"}, ...]

3. API批量处理

为不同参数进行多个API调用:

  • 输入:["product1", "product2", "product3"]
  • 子工作流:获取每个产品的价格
  • 输出:[99.99, 149.99, 79.99]

最佳实践

  1. 性能:注意循环计数限制(最多500次迭代)
  2. 频率限制:在进行外部API调用时使用循环间隔
  3. 错误处理:考虑如何处理单个迭代中的失败
  4. 数据类型:确保循环变量正确格式化为数组
  5. 输出结构:规划结束循环一次节点需要的数据结构

常见模式

简单值转换

当您需要转换每个数组元素时使用:

  • 配置结束循环一次以输出转换后的值
  • 保持相同的数组结构

数据聚合

当您需要收集每个元素的信息时使用:

  • 配置结束循环一次以输出丰富的对象
  • 将原始数据与新计算的数据相结合

带处理的过滤

与条件节点结合以选择性地处理数组元素:

  • 在子工作流中使用条件
  • 根据条件输出不同的值