液体。然后使用if条件循环遍历一个数组,然后将其输出存储在另一个数组中

时间:2019-03-15 18:12:38

标签: shopify liquid

{% assign leg = {{Predept.legs}} %}
{% for legs in {{leg}} %}
  {% if {{leg[forloop.index0].direction}} == 'R' %}
            {{leg[forloop.index0].arr_station_name}} 
  {%endif %}
{%endfor %}

我想将此for循环的输出放入另一个数组。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

欢迎,Jeet!

首先,您永远不会嵌套Liquid标签。您的基本循环应如下所示:

split

现在,在Liquid中,您只能通过对字符串使用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: ',' -%} 字符来控制它,给出:

'<li>  somejsvar </li>'

希望这会有所帮助!