Жидкость. Зацикливаясь на массиве с условием if, вы хотите сохранить результат этого в другом массиве - PullRequest
0 голосов
/ 15 марта 2019
{% assign leg = {{Predept.legs}} %}
{% for legs in {{leg}} %}
  {% if {{leg[forloop.index0].direction}} == 'R' %}
            {{leg[forloop.index0].arr_station_name}} 
  {%endif %}
{%endfor %}

Я хочу поместить вывод этого цикла for в другой массив. Есть идеи?

1 Ответ

2 голосов
/ 15 марта 2019

Добро пожаловать, Джит!

Во-первых, вы никогда не вкладываете теги Liquid. Ваш основной цикл должен выглядеть примерно так:

{% assign legs = Predept.legs %}
{% for leg in legs %}
  <!-- Cool code & stuff here! -->
{% endfor %}

Теперь в Liquid вы можете создать новый массив только с помощью фильтра split для строки. Мы также можем создать строку, обернув другие команды тегом capture. Собирая это вместе, мы получаем что-то вроде:

{% capture leg_data %}
  {% assign legs = Predept.legs %}
  {% for leg in legs %}
    {% if leg.direction == 'R' %}
      {% comment %}Output delimiter if needed {% endcomment %}
      {% unless found_one %},{% endunless %}
      {% assign found_one = true %}
      {{ leg.arr_station_name }}
    {% endif %}
  {% endfor %}
{% endcapture %}

{% assign leg_data = leg_data | split: ',' %}

Это даст нам массив всех наших arr_station_name для желаемых ног, но вы можете заметить, что capture также захватывает все пробелы в нем. Если нам нужно предотвратить попадание этого в наш симпатичный маленький массив, мы можем использовать символ - для удаления пробелов в наших тегах, чтобы контролировать это, давая:

{%- capture leg_data -%}
  {%- assign legs = Predept.legs -%}
  {%- for leg in legs -%}
    {%- if leg.direction == 'R' -%}
      {%- comment -%}Output delimiter if needed {%- endcomment -%}
      {%- unless found_one -%},{%- endunless -%}
      {%- assign found_one = true -%}
      {{- leg.arr_station_name -}}
    {%- endif -%}
  {%- endfor -%}
{%- endcapture -%}

{%- assign leg_data = leg_data | split: ',' -%}

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...