first

Retorna o primeiro item de um array.
{{ "Ground control to Major Tom." | split: " " | first }}
Ground
{% assign my_array = "zebra, polvo, girafa, tigre" | split: ", " %}
{{ my_array.first }}
zebra
Você pode usar first com notação de ponto quando precisar usar o filtro dentro de uma tag:
{% if my_array.first == "zebra" %}
  Aqui vem uma zebra!
{% endif %}

last

Retorna o último item de um array.
{{ "Ground control to Major Tom." | split: " " | last }}
Tom.
{% assign my_array = "zebra, polvo, girafa, tigre" | split: ", " %}
{{ my_array.last }}
tigre
Você pode usar last com notação de ponto quando precisar usar o filtro dentro de uma tag:
{% if my_array.last == "tigre" %}
  Lá vai um tigre!
{% endif %}

join

Combina os itens de um array em uma única string usando o argumento como separador.
{% assign beatles = "John, Paul, George, Ringo" | split: ", " %}
{{ beatles | join: " e " }}
John e Paul e George e Ringo

reverse

Inverte a ordem dos itens em um array. reverse não pode inverter uma string.
{% assign my_array = "maçãs, laranjas, pêssegos, ameixas" | split: ", " %}

{{ my_array | reverse | join: ", " }}
ameixas, pêssegos, laranjas, maçãs
Embora reverse não possa ser usado diretamente em uma string, você pode dividir uma string em um array, inverter o array e juntá-lo novamente encadeando filtros:
{{ "Ground control to Major Tom." | split: "" | reverse | join: "" }}
.moT rojaM ot lortnoc dnuorG

size

Retorna o número de caracteres em uma string ou o número de itens em um array.
{{ "Ground control to Major Tom." | size }}
28
{% assign my_array = "maçãs, laranjas, pêssegos, ameixas" | split: ", " %}

{{ my_array.size }}
4
Você pode usar size com notação de ponto quando precisar usar o filtro dentro de uma tag:
{% if site.pages.size > 10 %}
  Este é um website grande!
{% endif %}

sort

Classifica itens em um array em ordem sensível a maiúsculas e minúsculas.
{% assign my_array = "zebra, polvo, girafa, Sara Serpente" | split: ", " %}

{{ my_array | sort | join: ", " }}
Sara Serpente, girafa, polvo, zebra
Um argumento opcional especifica qual propriedade dos itens do array usar para classificação.
{% assign products_by_price = collection.products | sort: "price" %}
{% for product in products_by_price %}
  <h4>{{ product.title }}</h4>
{% endfor %}

sort_natural

Classifica itens em um array em ordem insensível a maiúsculas e minúsculas.
{% assign my_array = "zebra, polvo, girafa, Sara Serpente" | split: ", " %}

{{ my_array | sort_natural | join: ", " }}
girafa, polvo, Sara Serpente, zebra
Um argumento opcional especifica qual propriedade dos itens do array usar para classificação.
{% assign products_by_company = collection.products | sort_natural: "company" %}
{% for product in products_by_company %}
  <h4>{{ product.title }}</h4>
{% endfor %}

map

Cria um array de valores extraindo os valores de uma propriedade nomeada de outro objeto. Neste exemplo, assumimos que o objeto site.pages contém todos os metadados de um website. Usando assign com o filtro map cria uma variável que contém apenas os valores das propriedades category de tudo no objeto site.pages.
{% assign all_categories = site.pages | map: "category" %}

{% for item in all_categories %}
- {{ item }}
{% endfor %}
- negócios
- celebridades
- estilo de vida
- esportes
- tecnologia

concat

Concatena (junta) múltiplos arrays. O array resultante contém todos os itens dos arrays de entrada.
{% assign fruits = "maçãs, laranjas, pêssegos" | split: ", " %}
{% assign vegetables = "cenouras, nabos, batatas" | split: ", " %}

{% assign everything = fruits | concat: vegetables %}

{% for item in everything %}
- {{ item }}
{% endfor %}
- maçãs
- laranjas
- pêssegos
- cenouras
- nabos
- batatas
Você pode encadear filtros concat para juntar mais de dois arrays:
{% assign furniture = "cadeiras, mesas, prateleiras" | split: ", " %}

{% assign everything = fruits | concat: vegetables | concat: furniture %}

{% for item in everything %}
- {{ item }}
{% endfor %}
- maçãs
- laranjas
- pêssegos
- cenouras
- nabos
- batatas
- cadeiras
- mesas
- prateleiras

uniq

Remove qualquer elemento duplicado em um array.
{% assign my_array = "formigas, insetos, abelhas, insetos, formigas" | split: ", " %}
{{ my_array | uniq | join: ", " }}
formigas, insetos, abelhas

where

Cria um array incluindo apenas os objetos com um valor de propriedade específico, ou qualquer valor verdadeiro por padrão. Neste exemplo, suponha que você tem uma lista de produtos e quer mostrar seus produtos de cozinha separadamente. Usando where, você pode criar um array contendo apenas os produtos que têm um "type" de "kitchen".
Todos os produtos:
{% for product in products %}
- {{ product.title }}
{% endfor %}

{% assign kitchen_products = products | where: "type", "kitchen" %}

Produtos de cozinha:
{% for product in kitchen_products %}
- {{ product.title }}
{% endfor %}
Todos os produtos:
- Aspirador
- Espátula
- Televisão
- Espremedor de alho

Produtos de cozinha:
- Espátula
- Espremedor de alho
Digamos que em vez disso você tenha uma lista de produtos e só queira mostrar aqueles que estão disponíveis para compra. Você pode usar where com um nome de propriedade mas sem valor de destino para incluir todos os produtos com um valor "available" verdadeiro. Como caso especial, o mesmo acontecerá se o valor de destino for fornecido mas avaliado como undefined.
Todos os produtos:
{% for product in products %}
- {{ product.title }}
{% endfor %}

{% assign available_products = products | where: "available" %}

Produtos disponíveis:
{% for product in available_products %}
- {{ product.title }}
{% endfor %}
Todos os produtos:
- Caneca de café
- Tênis edição limitada
- Tênis básico

Produtos disponíveis:
- Caneca de café
- Tênis básico
O filtro where também pode ser usado para encontrar um único objeto em um array quando combinado com o filtro first. Por exemplo, digamos que você queira destacar a camisa da sua nova coleção de outono.
{% assign new_shirt = products | where: "type", "shirt" | first %}
Produto em destaque: {{ new_shirt.title }}
Produto em destaque: Colete de tricô estampado havaiano
Além disso, property pode ser qualquer expressão de variável Liquid válida como usada na sintaxe de saída, exceto que o escopo desta expressão está dentro de cada item. Para o seguinte array products:
const products = [
    { meta: { details: { class: 'A' } }, order: 1 },
    { meta: { details: { class: 'B' } }, order: 2 },
    { meta: { details: { class: 'B' } }, order: 3 }
]
{% assign selected = products | where: 'meta.details["class"]', "B" %}
{% for item in selected -%}
- {{ item.order }}
{% endfor %}
- 2
- 3

slice

Retorna uma substring de 1 caractere começando no índice especificado pelo primeiro argumento. Um segundo argumento opcional especifica o comprimento da substring a ser retornada. Os índices de string são numerados começando do 0.
{{ "Liquid" | slice: 0 }}
L
{{ "Liquid" | slice: 2 }}
q
{{ "Liquid" | slice: 2, 5 }}
quid
Se o primeiro argumento for um número negativo, os índices são contados a partir do final da string:
{{ "Liquid" | slice: -3, 2 }}
ui

where_exp

Seleciona todos os objetos em um array onde a expressão é verdadeira. Neste exemplo, suponha que você tem uma lista de produtos e quer mostrar seus produtos de cozinha separadamente. Usando where_exp, você pode criar um array contendo apenas os produtos que têm um "type" de "kitchen".
Todos os produtos:
{% for product in products %}
- {{ product.title }}
{% endfor %}

{% assign kitchen_products = products | where_exp: "item", "item.type == 'kitchen'" %}

Produtos de cozinha:
{% for product in kitchen_products %}
- {{ product.title }}
{% endfor %}
Todos os produtos:
- Aspirador
- Espátula
- Televisão
- Espremedor de alho

Produtos de cozinha:
- Espátula
- Espremedor de alho

find

Retorna o primeiro objeto em um array para o qual o atributo consultado tem o valor dado ou retorna nil se nenhum item no array satisfizer os critérios dados. Para o seguinte array members:
const members = [
  { graduation_year: 2013, name: 'Jay' },
  { graduation_year: 2014, name: 'John' },
  { graduation_year: 2014, name: 'Jack' }
]
{{ members | find: "graduation_year", 2014 | json }}
{"graduation_year":2014,"name":"John"}

find_exp

Retorna o primeiro objeto em um array para o qual a expressão dada avalia como verdadeira ou retorna nil se nenhum item no array satisfizer a expressão avaliada.
const members = [
  { graduation_year: 2013, name: 'Jay' },
  { graduation_year: 2014, name: 'John' },
  { graduation_year: 2014, name: 'Jack' }
]
{{ members | find_exp: "item", "item.graduation_year == 2014" | json }}
{"graduation_year":2014,"name":"John"}

find_index

Retorna o índice baseado em 0 do primeiro objeto em um array para o qual o atributo consultado tem o valor dado ou retorna nil se nenhum item no array satisfizer os critérios dados. Para o seguinte array members:
const members = [
  { graduation_year: 2013, name: 'Jay' },
  { graduation_year: 2014, name: 'John' },
  { graduation_year: 2014, name: 'Jack' }
]
{{ members | find_index: "graduation_year", 2014 | json }}
1

find_index_exp

Retorna o índice baseado em 0 do primeiro objeto em um array para o qual a expressão dada avalia como verdadeira ou retorna nil se nenhum item no array satisfizer a expressão avaliada.
const members = [
  { graduation_year: 2013, name: 'Jay' },
  { graduation_year: 2014, name: 'John' },
  { graduation_year: 2014, name: 'Jack' }
]
{{ members | find_index_exp: "item", "item.graduation_year == 2014" | json }}
1

group_by

Agrupa os itens de um array por uma propriedade dada. Para o array members:
const members = [
  { graduation_year: 2003, name: 'Jay' },
  { graduation_year: 2003, name: 'John' },
  { graduation_year: 2004, name: 'Jack' }
]
{{ members | group_by: "graduation_year" | json: 2 }}
[
  {
    "name": 2003,
    "items": [
      {
        "graduation_year": 2003,
        "name": "Jay"
      },
      {
        "graduation_year": 2003,
        "name": "John"
      }
    ]
  },
  {
    "name": 2004,
    "items": [
      {
        "graduation_year": 2004,
        "name": "Jack"
      }
    ]
  }
]

group_by_exp

Agrupa os itens de um array usando uma expressão Liquid. Para o array members abaixo:
const members = [
  { graduation_year: 2013, name: 'Jay' },
  { graduation_year: 2014, name: 'John' },
  { graduation_year: 2009, name: 'Jack' }
]
{{ members | group_by_exp: "item", "item.graduation_year | truncate: 3, ''" | json: 2 }}
[
  {
    "name": "201",
    "items": [
      {
        "graduation_year": 2013,
        "name": "Jay"
      },
      {
        "graduation_year": 2014,
        "name": "John"
      }
    ]
  },
  {
    "name": "200",
    "items": [
      {
        "graduation_year": 2009,
        "name": "Jack"
      }
    ]
  }
]

has

Retorna true se o array incluir um item para o qual o atributo consultado tem o valor dado ou retorna false se nenhum item no array satisfizer os critérios dados. Para o seguinte array members:
const members = [
  { graduation_year: 2013, name: 'Jay' },
  { graduation_year: 2014, name: 'John' },
  { graduation_year: 2014, name: 'Jack' }
]
{{ members | has: "graduation_year", 2014 | json }}
true

has_exp

Retorna true se um item existir em um array para o qual a expressão dada avalia como verdadeira ou retorna false se nenhum item no array satisfizer a expressão avaliada.
const members = [
  { graduation_year: 2013, name: 'Jay' },
  { graduation_year: 2014, name: 'John' },
  { graduation_year: 2014, name: 'Jack' }
]
{{ members | has_exp: "item", "item.graduation_year == 2014" | json }}
true

compact

Remove quaisquer valores nil de um array. Para este exemplo, suponha que site.pages é um array de páginas de conteúdo para um website, e algumas dessas páginas têm um atributo chamado category que especifica sua categoria de conteúdo. Se nós mapearmos essas categorias para um array, alguns dos itens do array podem ser nil se alguma página não tiver um atributo category.
{% assign site_categories = site.pages | map: "category" %}

{% for category in site_categories %}
- {{ category }}
{% endfor %}
- negócios
- celebridades
-
- estilo de vida
- esportes
-
- tecnologia
Ao usar compact quando criamos nosso array site_categories, podemos remover todos os valores nil no array.
{% assign site_categories = site.pages | map: "category" | compact %}

{% for category in site_categories %}
- {{ category }}
{% endfor %}
- negócios
- celebridades
- estilo de vida
- esportes
- tecnologia

push

Adiciona um elemento no array. É NÃO-DESTRUTIVO, ou seja, não modifica o array, mas sim faz uma cópia e modifica essa cópia.
{% assign fruits = "maçãs, laranjas" | split: ", " %}

{% assign everything = fruits | push: "pêssegos" %}

{% for item in everything %}
- {{ item }}
{% endfor %}
- maçãs
- laranjas
- pêssegos

pop

Remove um elemento do array. É NÃO-DESTRUTIVO, ou seja, não modifica o array, mas sim faz uma cópia e modifica essa cópia.
{% assign fruits = "maçãs, laranjas, pêssegos" | split: ", " %}

{% assign everything = fruits | pop %}

{% for item in everything %}
- {{ item }}
{% endfor %}
- maçãs
- laranjas

shift

Remove um elemento do início do array. É NÃO-DESTRUTIVO, ou seja, não modifica o array, mas sim faz uma cópia e modifica essa cópia.
{% assign fruits = "maçãs, laranjas, pêssegos" | split: ", " %}

{% assign everything = fruits | shift %}

{% for item in everything %}
- {{ item }}
{% endfor %}
- laranjas
- pêssegos

unshift

Adiciona um elemento no início do array. É NÃO-DESTRUTIVO, ou seja, não modifica o array, mas sim faz uma cópia e modifica essa cópia.
{% assign fruits = "laranjas, pêssegos" | split: ", " %}

{% assign everything = fruits | unshift: "maçãs" %}

{% for item in everything %}
- {{ item }}
{% endfor %}
- maçãs
- laranjas
- pêssegos

reject

Cria um array excluindo os objetos com um valor de propriedade específico, ou excluindo valores verdadeiros por padrão quando uma propriedade não é fornecida. Neste exemplo, suponha que você tem uma lista de produtos e quer filtrar produtos de cozinha. Usando reject, você pode criar um array excluindo apenas os produtos que têm um "type" de "kitchen".
Todos os produtos:
{% for product in products %}
- {{ product.title }}
{% endfor %}

{% assign non_kitchen_products = products | reject: "type", "kitchen" %}

Produtos de cozinha:
{% for product in non_kitchen_products %}
- {{ product.title }}
{% endfor %}
Todos os produtos:
- Aspirador
- Espátula
- Televisão
- Espremedor de alho

Produtos de cozinha:
- Aspirador 
- Televisão
Digamos que em vez disso você tenha uma lista de produtos e queira excluir produtos tributáveis. Você pode usar reject com um nome de propriedade mas sem valor de destino para rejeitar todos os produtos com um valor "taxable" verdadeiro.
Todos os produtos:
{% for product in products %}
- {{ product.title }}
{% endfor %}

{% assign not_taxed_products = products | reject: "taxable" %}

Produtos disponíveis:
{% for product in not_taxed_products %}
- {{ product.title }}
{% endfor %}
Todos os produtos:
- Aspirador
- Espátula
- Televisão
- Espremedor de alho

Produtos disponíveis:
- Espátula
- Televisão
Além disso, property pode ser qualquer expressão de variável Liquid válida como usada na sintaxe de saída, exceto que o escopo desta expressão está dentro de cada item. Para o seguinte array products:
const products = [
    { meta: { details: { class: 'A' } }, order: 1 },
    { meta: { details: { class: 'B' } }, order: 2 },
    { meta: { details: { class: 'B' } }, order: 3 }
]
{% assign selected = products | reject: 'meta.details["class"]', "B" %}
{% for item in selected -%}
- {{ item.order }}
{% endfor %}
- 1

reject_exp

Seleciona todos os objetos em um array onde a expressão é falsa. Neste exemplo, suponha que você tem uma lista de produtos e quer esconder seus produtos de cozinha. Usando reject_exp, você pode criar um array que omite apenas os produtos que têm um "type" de "kitchen".
Todos os produtos:
{% for product in products %}
- {{ product.title }}
{% endfor %}

{% assign non_kitchen_products = products | reject_exp: "item", "item.type == 'kitchen'" %}

Produtos de cozinha:
{% for product in non_kitchen_products %}
- {{ product.title }}
{% endfor %}
Todos os produtos:
- Aspirador
- Espátula
- Televisão
- Espremedor de alho

Produtos de cozinha:
- Aspirador
- Televisão