Iteration
  • 13 Mar 2024
  • 2 Minutes to read

Iteration


Article Summary

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 <table> and closing </table> 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


Was this article helpful?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.