【问题标题】:Liquid - Sort array of based on separate arrayLiquid - 基于单独数组的排序数组
【发布时间】:2020-01-24 18:25:56
【问题描述】:

我正在寻找一种基于单独数组过滤和排序图像数组的方法。

图片:

{% assign images = '
100-0000-BLK-LF01.jpg,
100-0000-BLK-L01.jpg,
100-0000-BLK-T01.jpg,
100-0000-BLK-S01.jpg,
100-0000-BLK-HF01.jpg,
100-0000-BLK-F01.jpg' | strip | split: ',' %}

排序数组:

{% assign codes_360 = '-F01,-L01,-S01,-U01,-B01,-T01' | split: ',' %}

我可以根据代码过滤掉图像,然后需要根据代码数组对它们进行排序:

{%- capture images_360 -%}
{%- for image in images -%}
  {%- for code in codes_360 -%}
    {%- if image contains code -%}
      {{- image -}}{%- if forloop.last == false -%}::{%- endif -%}
    {%- endif -%}    
  {%- endfor -%}
{%- endfor -%}
{%- endcapture -%}
{%- assign images_360 = images_360 | strip | split: '::' -%}
{{ images_360 }}

输出:

100-0000-BLK-L01.jpg
100-0000-BLK-T01.jpg
100-0000-BLK-S01.jpg
100-0000-BLK-F01.jpg

我想让它们按照codes_360数组排序:

100-0000-BLK-F01.jpg
100-0000-BLK-L01.jpg
100-0000-BLK-S01.jpg
100-0000-BLK-T01.jpg

【问题讨论】:

    标签: arrays sorting shopify liquid


    【解决方案1】:

    通过切换外部forloop和嵌套forloop的顺序来解决这个问题。然后添加对外部 forloop 的引用,以检查索引 (0,1,2,3) 是否等于排序数组中的对应值。

    {% assign codes_360 = '-F01,-L01,-S01,-U01,-B01,-T01' | split: ',' %}
    
    {% assign images = '
    BLK-LF01.jpg,
    BLK-L01.jpg,
    BLK-T01.jpg,
    BLK-S01.jpg,
    BLK-HF01.jpg,
    BLK-F01.jpg' | split: ',' %}
    
    {%- capture images_360 -%}
    {%- for code in codes_360 -%}
      {% assign code_forloop = forloop %}
      {%- for image in images -%}
        {%- if image contains code and codes_360[code_forloop.index0] == code -%}
          {{- image -}}{%- if forloop.last == false -%}::{%- endif -%}
        {%- endif -%}    
      {%- endfor -%}
    {%- endfor -%}
    {%- endcapture -%}
    {%- assign images_360 = images_360 | strip | split: '::' -%}
    
    {{ images_360 }}
    

    输出:

    BLK-F01.jpg
    BLK-L01.jpg
    BLK-S01.jpg
    BLK-T01.jpg
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-25
      • 2021-07-17
      • 2015-04-13
      • 2015-10-09
      • 2013-06-24
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      相关资源
      最近更新 更多