How to output 2nd indexed item in a list?

lösung
Highlighted
Berater

 

I want to output the 2nd item in a list.  For example, I'd like to output "oranges" from my list below, but this is not printing anything at all:

 

{% set items= ['apples, 'oranges', 'bananas', 'pears'] %}

{% for item in items %}
  {% if loop.index == 2 %}
     {% set output = item %}
{{ output|pprint }} {% endif %} {% endfor %}

Any ideas what the best way is to do this?

 

Antworten
0 Likes
1 Akzeptierte Lösung

Akzeptierte Lösungen
Highlighted
Sachkundiger | Diamond Solutions Partner

Hey @Greg_Batenburg

 

You have a missing quote to close the first word apples.
Fixed code:

{% set items= ['apples', 'oranges', 'bananas', 'pears'] %}

{% for item in items %}
  {% if loop.index == 2 %}
     {% set output = item %}
     {{ output|pprint }}
  {% endif %}
{% endfor %}

Also, to print just the value you don't need the |pprint filter. Its used to print a whole array and the type of the function and things like that while debuggin. In this case the |pprint filter will print:
(String: oranges)

instead only:
orange

 

Regards,

Gonzalo

Antworten
0 Likes
3 Antworten
Highlighted
Sachkundiger | Diamond Solutions Partner

Hey @Greg_Batenburg

 

You have a missing quote to close the first word apples.
Fixed code:

{% set items= ['apples', 'oranges', 'bananas', 'pears'] %}

{% for item in items %}
  {% if loop.index == 2 %}
     {% set output = item %}
     {{ output|pprint }}
  {% endif %}
{% endfor %}

Also, to print just the value you don't need the |pprint filter. Its used to print a whole array and the type of the function and things like that while debuggin. In this case the |pprint filter will print:
(String: oranges)

instead only:
orange

 

Regards,

Gonzalo

Antworten
0 Likes
Highlighted
Berater

Thanks!  I also learned my lesson that I am not allowed to pass variables out of the for loop in HUBL.

 

 

Antworten
0 Likes
Highlighted
Sachkundiger | Diamond Solutions Partner

Right!

If you need to "extract" a value from a for the only way to manage is working on the last iteration, so you can do something like:

{% for item in items %}
{% if loop.last %} {# Do your stuff here #} {% endif %} {% endfor %}

 

Antworten
0 Likes