这个问题非常接近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
显然这是不可能的。如果有人有工作,请告诉我!
答案 0 :(得分:2)
如果使用Javascript是一个选项,那么这可能是一个答案https://github.com/Shopify/liquid/issues/143#issuecomment-8718129
但我还没有发现任何Liquid只能回答......