--- 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 Output ### 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