[英]Liquid Sort Array of strings alphabetically and label them
我有一個排序的字符串數組,現在我想在標記它們時將它們打印出來。
例如,如果我的數組是 ['1_array_content', '3_array_content', 'apple', 'ant', 'bucket']
然后我想像這樣打印出來:如何將第一個字母添加為 label? 以及這對數字首字母有何作用(所有字母都將屬於 [0-9] label。
[0-9]
1_array_content
3_array_content
[一個]
ant
蘋果
[乙]
桶
好的,所以你有兩個問題需要在這里解決:
這是一個可能的解決方案(未經測試,解釋如下):
{% assign numbers_label_displayed = false %}
{% assign letter_labels = '' %}
{% for item in array.items %}
{% case item.first %}
{% when '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' %}
{% unless numbers_label_displayed %}
[0-9]
{% assign numbers_label_displayed = true %}
{% endunless %}
{% else %}
{% unless letter_labels contains item.first %}
{{ item.first | append:']' | prepend:'[' }}
{% assign letter_labels = letter_labels | append: item.first | append: ' ' %}
{% endunless %}
{% endcase %}
{{ item }}
{% endfor %}
首先,我初始化兩個變量,這將有助於檢查標簽是否已經顯示。 第一個是 boolean 處理“數字”情況,第二個存儲所有已顯示的標簽。
然后我通過數組初始化循環並處理兩種情況:數字和字母。 我使用控制流案例/when,因為它比 if/else 更簡潔、更輕松,並允許在全局范圍內管理這兩個問題。
我在第一個 when 中列出數字並分配一個 else 來處理這些字母。
為了處理數字大小寫,我為 boolean var 設置了一個除非條件,然后我為數字顯示 label 並將我的 boolean 變量設置為 true,因此下一次迭代不會再次顯示它。
為了處理字母大小寫,我設置了一個除非條件檢查字母是否已經存儲在字符串 var 中。 如果沒有,我會顯示該字母並將其添加到字符串 var。 如果是這樣,除非條件允許不再將其顯示為 label。
高溫高壓
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.