Basic Usage
How It Works
- The
inexpression evaluates to an array - For each element, the
doblock executes - Current item is accessible via the variable specified in
each(default:$item) - Current index is accessible via the variable specified in
at(default:$index) - The output of each iteration becomes the input for the next
- Final output is from the last iteration
Complete Examples
Processing Order Items
Batch API Calls
Conditional Iteration
Aggregating Results
Nested Iteration
Configuration
for (required)
Defines iteration parameters:in (required)
Expression that must evaluate to an array:each (optional)
Variable name for current item (default:item):
at (optional)
Variable name for current index (default:index):
while (optional)
Condition to continue iteration:do (required)
Tasks to execute for each item:Data Flow
Each iteration receives output from previous iteration:Early Exit
Usethen: exit to stop iteration:
Best Practices
- Initialize accumulator variables - Set initial values before the loop
- Handle empty arrays - Check array length before iterating
- Use meaningful variable names - Make
eachandatnames descriptive - Avoid side effects - Keep iterations independent when possible
- Consider performance - Large arrays may need batch processing
- Add error handling - Wrap risky operations in Try/Catch
- Log progress - Track iteration progress for long-running loops
Common Patterns
Map Pattern (Transform Each Item)
Filter Pattern
Reduce Pattern (Accumulate)
Index-Based Processing
Error Handling
Handle errors within iterations:Performance Considerations
Large Arrays
For large arrays, consider batch processing:Parallel Processing
Use Fork for parallel iteration:Related Topics
- Do Task - Sequential execution
- Fork Task - Parallel execution
- Switch Task - Conditional branching
- Set Task - Data transformation