Фильтры массивов изменяют вывод массивов.


В этом материале


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