---
title: "Iteration"
slug: "iteration"
updated: 2024-03-13T18:03:12Z
published: 2024-03-13T18:03:13Z
canonical: "help.nexudus.com/iteration"
---
> ## Documentation Index
> Fetch the complete documentation index at: https://help.nexudus.com/llms.txt
> Use this file to discover all available pages before exploring further.
# Iteration
## for
Repeatedly executes a block of code. For a full list of attributes available within a `for` loop, see forloop (object).
Input
{% for member in data.AllMembersByName %}
- {{member.FullName}}
{% endfor %}
Output
- Aarit Akshai
- Ayaan Ellis
- Eliz Lomber
- Kieram Graham
- Renata Mantrum
- Tanuki Mushinoku
- Tara Preston
### for (parameters)
**limit**
Limits the loop to the specified number of iterations.
Input
{% assign array = (1..6) %}
{% for item in array limit:2 %}
{{ item }}
{% endfor %}
Output
1 2
**offset**
Begins the loop at the specified index.
Input
{% assign array = (1..6) %}
{% for item in array offset:2 %}
{{ item }}
{% endfor %}
Output
3 4 5 6
**range**
Defines a range of numbers to loop through. The range can be defined by both literal and variable numbers.
Input
{% for i in (3..5) %}
{{ i }}
{% endfor %}
{% assign num = 4 %}
{% for i in (1..num) %}
{{ i }}
{% endfor %}
Output
3 4 5
1 2 3 4
**reversed**
Reverses the order of the loop. Note that this flag’s spelling is different from the filter `reverse`.
Input
{% assign array = (1..6) %}
{% for item in array reversed %}
{{ item }}
{% endfor %}
Output
6 5 4 3 2 1
## cycle
Loops through a group of strings and prints them in the order that they were passed as arguments. Each time `cycle` is called, the next string argument is printed.
`cycle` must be used within a for loop block.
Input
{% cycle "one", "two", "three" %}
{% cycle "one", "two", "three" %}
{% cycle "one", "two", "three" %}
{% cycle "one", "two", "three" %}
Output
one
two
three
one
Uses for `cycle` include:
## cycle (parameters)
`cycle` accepts a “cycle group” parameter in cases where you need multiple `cycle` blocks in one template. If no name is supplied for the cycle group, then it is assumed that multiple calls with the same parameters are one group.
Input
{% cycle "first": "one", "two", "three" %}
{% cycle "second": "one", "two", "three" %}
{% cycle "second": "one", "two", "three" %}
{% cycle "first": "one", "two", "three" %}
Output
one
one
two
two
## tablerow
Generates an HTML table. Must be wrapped in opening `<table>` and closing `</table>` HTML tags.
Input
{% tablerow member in data.AllMembersByName cols: 4 %}
{{ member.FullName }}
{% endtablerow %}
Output
|
Aarit Akshai
|
Ayaan Ellis
|
Eliz Lomber
|
Kieram Graham
|
|
Renata Mantrum
|
Tanuki Mushinoku
|
Tara Preston
|
## tablerow (parameters)
cols
Defines how many columns the tables should have.
Input
{% tablerow member in data.AllMembersByName cols: 2 %}
{{ member.FullName }}
{% endtablerow %}
Output
|
Aarit Akshai
|
Ayaan Ellis
|
|
Eliz Lomber
|
Kieram Graham
|
|
Renata Mantrum
|
Tanuki Mushinoku
|
|
Tara Preston
|
**range**
Defines a range of numbers to loop through. The range can be defined by both literal and variable numbers.
{% assign num = 4 %}
{% tablerow i in (1..num) cols: 2 %}
{{ i }}
{% endtablerow %}
{% tablerow i in (3..5) cols: 2 %}
{{ i }}
{% endtablerow %}
## forloop.first
Returns `true` if it's the first iteration of the for loop. Returns `false` if it is not the first iteration.
Input
{% for product in collections.frontpage.products %}
{% if forloop.first == true %}
First time through!
{% else %}
Not the first time.
{% endif %}
{% endfor %}
Output
First time through!
Not the first time.
Not the first time.
Not the first time.
Not the first time.
## forloop.index
Returns the current index of the for loop, starting at 1.
Input
{% for member in data.AllMembersByName %}
{{ forloop.index }}
{% endfor %}
Output
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
## forloop.index0
Returns the current index of the for loop, starting at 0.
Input
{% for member in data.AllMembersByName %}
{{ forloop.index0 }}
{% endfor %}
Output
0 1 2 3 4 5 6 7
## forloop.last
Returns `true` if it's the last iteration of the for loop. Returns `false` if it is not the last iteration.
Input
{% for member in data.AllMembersByName %}
{% if forloop.last == true %}
This is the last iteration!
{% else %}
Keep going...
{% endif %}
{% endfor %}
Output
Keep going...
Keep going...
Keep going...
Keep going...
Keep going...
This is the last iteration!
## forloop.length
Returns the number of iterations of the loop.
Input
{% for member in data.AllMembersByName %}
{% if forloop.first %}
This collection has {{ forloop.length }} members:
{% endif %}
{{ member.FullName }}
{% endfor %}
Output
This collection has 7 members:
Aarit Akshai
Ayaan Ellis
Eliz Lomber
Kieram Graham
Renata Mantrum
Tanuki Mushinoku
Tara Preston
## forloop.rindex
Returns forloop.index in reverse order.
Input
{% for member in data.AllMembersByName %}
{{ forloop.rindex }}
{% endfor %}
Output
7 6 5 4 3 2 1
## forloop.rindex0
Returns forloop.index0 in reverse order.
Input
{% for member in data.AllMembersByName %}
{{ forloop.rindex0 }}
{% endfor %}
Output
6 5 4 3 2 1 0