【问题标题】:Shopify - sort array using liquid script with 2 criteriaShopify - 使用具有 2 个条件的液体脚本对数组进行排序
【发布时间】:2014-09-03 19:26:48
【问题描述】:

这个问题真的很接近Shopify Sort cart.items array using Liquid script

我有未排序的会话,我想按日期和时间排序(预期结果:1、2、3、4)。

{  
    "date"=>"2014-06-24", 
    "time"=>"09:00", 
    "name"=>"Session 2",
}
{  
    "date"=>"2014-06-25", 
    "time"=>"08:45", 
    "name"=>"Session 3",
}
{  
    "date"=>"2014-06-24", 
    "time"=>"08:00", 
    "name"=>"Session 1",
}
{  
    "date"=>"2014-06-25", 
    "time"=>"09:45", 
    "name"=>"Session 4",
}

代码如下:

{% assign time_sorted_instances = instances | sort: "time" %}
{% assign day_sorted_instances = time_sorted_instances | sort: "date" %}
{% for instance in instances %}
  {{ instance.date | date: "%A, %B %e, %Y" }} {{ instance.time }} {{ instance.session.name }}             <br>
{% endfor %}
{% for instance in time_sorted_instances %}
  {{ instance.date | date: "%A, %B %e, %Y" }} {{ instance.time }} {{ instance.session.name }}             <br>
{% endfor %}
{% for instance in day_sorted_instances %}
  {{ instance.date | date: "%A, %B %e, %Y" }} {{ instance.time }} {{ instance.session.name }}             <br>
{% endfor %}

我可以得到按日期 (2,1,3,4) 或按时间 (1,3,2,4) 排序的实例,但不能一个接一个地排序 (1,2,3, 4)。 ruby 中的匹配函数是:

sorted_instances = instances.sort{|i| [i.date,i.time]}

这是 Liquid 中排序选项的代码:https://github.com/Shopify/liquid/blob/master/lib/liquid/standardfilters.rb#L112-L123

显然这是不可能的。如果有人有解决办法,请告诉我!

【问题讨论】:

    标签: sorting shopify liquid


    【解决方案1】:

    如果使用 Javascript 是一个选项,那可能是一个答案https://github.com/Shopify/liquid/issues/143#issuecomment-8718129

    但我还没有找到任何仅限 Liquid 的答案...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      相关资源
      最近更新 更多