---
title: "Iteration"
slug: "iteration"
updated: 2024-03-13T18:03:12Z
published: 2024-03-13T18:03:13Z
---

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

<ul>

{% for member in data.AllMembersByName %}

<li>{{member.FullName}}</li>

{% endfor %}

</ul>

Output

<ul>

<li>Aarit Akshai</li>

<li>Ayaan Ellis</li>

<li>Eliz Lomber</li>

<li>Kieram Graham</li>

<li>Renata Mantrum</li>

<li>Tanuki Mushinoku</li>

<li>Tara Preston</li>

</ul>

### for (parameters)

**limit**

Limits the loop to the specified number of iterations.

Input

{% assign array = (1..6) %}

<!-- array = [1,2,3,4,5,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) %}

<!-- array = [1,2,3,4,5,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) %}

<!-- array = [1,2,3,4,5,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 `&lt;table&gt;` and closing `&lt;/table&gt;` HTML tags.

Input

<table>

{% tablerow member in data.AllMembersByName cols: 4 %}

{{ member.FullName }}

{% endtablerow %}

</table>

Output

<table>

<tbody>

<tr class="row1">

<td class="col1">

Aarit Akshai

</td><td class="col2">

Ayaan Ellis

</td><td class="col3">

Eliz Lomber

</td><td class="col4">

Kieram Graham

</td></tr>

<tr class="row2"><td class="col1">

Renata Mantrum

</td><td class="col2">

Tanuki Mushinoku

</td><td class="col3">

Tara Preston

</td></tr>

</tbody>

</table>

## tablerow (parameters)

cols

Defines how many columns the tables should have.

Input

<table>

{% tablerow member in data.AllMembersByName cols: 2 %}

{{ member.FullName }}

{% endtablerow %}

</table>

Output

<table>

<tbody><tr class="row1">

<td class="col1">

Aarit Akshai

</td><td class="col2">

Ayaan Ellis

</td></tr>

<tr class="row2"><td class="col1">

Eliz Lomber

</td><td class="col2">

Kieram Graham

</td></tr>

<tr class="row3"><td class="col1">

Renata Mantrum

</td><td class="col2">

Tanuki Mushinoku

</td></tr>

<tr class="row4"><td class="col1">

Tara Preston

</td></tr>

</tbody></table>

**range**

Defines a range of numbers to loop through. The range can be defined by both literal and variable numbers.

{% assign num = 4 %}

<table>

{% tablerow i in (1..num) cols: 2 %}

{{ i }}

{% endtablerow %}

</table>

<!--literal number example-->

<table>

{% tablerow i in (3..5) cols: 2 %}

{{ i }}

{% endtablerow %}

</table>

## 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 %}

<p>This collection has {{ forloop.length }} members:</p>

{% endif %}

<p>{{ member.FullName }}</p>

{% 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
