귀하의 질문에 대한 답변에 조금 늦었습니다.하지만 다른 사람이 같은 문제로 고생하는 데 도움이 될 수 있습니다. Liquid 논리가 그렇듯이 약간의 해킹이지만, 적어도 Shopify에서는 작동합니다.
pages = [
{ name: 'Page 1', category: { name: 'pants' } },
{ name: 'Page 2', category: { name: 'pants' } },
{ name: 'Page 3', category: { name: 'shoes' } },
{ name: 'Page 4', category: { name: 'shirts' } },
{ name: 'Page 5', category: { name: 'shoes' } }
]
이 코드는 고유 한 범주 이름을 반환합니다 :
이처럼 보이는 '페이지'배열을 가정
{% assign delimiter = "," %}
{% assign names_str = "" %}
{% assign names = pages | map: 'category' | map: 'name' %}
{% for name in names %}
{% assign names_arr = names_str | split: delimiter %}
{% unless names_arr contains name %}
{% assign names_str = names_str | append: delimiter | append: name %}
{% endunless %}
{% endfor %}
{% assign names_uniq = names_str | remove_first: delimiter | split: delimiter %}
결과 :
names_uniq => [ 'pants', 'shoes', 'shirts' ]
출처
2013-07-09 16:50:20
Zac
감사합니다! 실제로 이것이 진보 된 것을 짜증나게하고'{% assign names_uniq = names | 독특한 %}'필터 :-( –