Фильтры массивов изменяют вывод массивов.
В этом материале
join
Объединение элементов массива с символом, переданным в качестве параметра. Результатом является одна строка.
{{ product.tags | join: ', ' }}
tag1, tag2, tag3
first
Возвращает первый элемент массива.
<!-- product.tags = "sale", "mens", "womens", "awesome" -->
{{ product.tags | first }}
sale
last
Возвращает последний элемент массива.
<!-- product.tags = "sale", "mens", "womens", "awesome" -->
{{ product.tags | last }}
awesome
concat
Объединение массива с другим массивом. Получающийся массив содержит все элементы исходных массивов. concat
не удаляет повторяющиеся записи из сливаемого массива, если вы не используете фильтр uniq.
{% assign fruits = "apples, oranges, peaches, tomatoes" | split: ", " %} {% assign vegetables = "broccoli, carrots, lettuce, tomatoes" | split: ", " %} {% assign plants = fruits | concat: vegetables %} {{ plants | join: ", " }}
apples, oranges, peaches, tomatoes, broccoli, carrots, lettuce, tomatoes
Вы можете объединить несколько фильтров concat
для объединения более двух массивов:
{% assign fruits = "apples, oranges, peaches" | split: ", " %} {% assign vegetables = "broccoli, carrots, lettuce" | split: ", " %} {% assign animals = "dogs, cats, birds" | split: ", " %} {% assign things = fruits | concat: vegetables | concat: animals %} {{ things | join: ", " }}
apples, oranges, peaches, broccoli, carrots, lettuce, dogs, cats, birds
index
Возвращает элемент в указанном местоположении индекса в массиве. Обратите внимание, что нумерация массивов начинается с нуля, поэтому первый элемент в массиве ссылается на [0]
.
<!-- product.tags = "sale", "mens", "womens", "awesome" -->
{{ product.tags[2] }}
womens
map
Принимает атрибут элемента массива в качестве параметра и создает массив из значения каждого элемента массива.
<!-- categories.title = "Весна", "Лето", "Осень", "Зима" -->
{% assign categories_titles = categories | map: 'title' %}
{{ categories_titles | join: ', ' }}
Весна, Лето, Осень, Зима
reverse
Изменяет порядок элементов в массиве.
{% assign my_array = "яблоки, апельсины, персики, сливы" | split: ", " %} {{ my_array | reverse | join: ", " }}
сливы, персики, апельсины, яблоки
size
Возвращает размер строки (количество символов) или массив (количество элементов).
{{ 'The quick brown fox jumps over a lazy dog.' | size }}
42
Вы можете использовать size
с точечной записью, когда вам нужно использовать фильтр внутри тега.
{% if files.size > 10 %} У этого продукта больше 10 прикреплённых файлов. {% endif %}
sort
Сортирует элементы массива по заданному атрибуту элемента в массиве.
{% assign products_sort = products | sort: 'cost' %}
{% for product in products_sort %}
<h4>{{ product.name }}</h4>
{% endfor %}
Порядок отсортированного массива зависит от регистра.
<!-- products = "a", "b", "A", "B" -->
{% assign products_sort = products | sort: name %}
{% for product in products_sort %}
{{ product.name }}
{% endfor %}
A B a b
uniq
Удаляет все повторяющиеся экземпляры элементов в массиве.
{% assign fruits = "orange apple banana apple orange" %} {{ fruits | split: ' ' | uniq | join: ' ' }}
orange apple banana