Matrizes e funções de lista arrays

Use essas funções para facilitar a interação com matrizes, listas e sequências de caracteres.

Somente contagem nula count-only-null

A função countOnlyNull é usada para contar o número de valores nulos em uma lista.

Sintaxe

{%= countOnlyNull(array) %}

Exemplo

{%= countOnlyNull([4,0,1,6,0,0]) %}

Retorna 3.

Contagem com nulo count-with-null

A função countWithNull é usada para contar todos os elementos de uma lista, incluindo valores nulos.

Sintaxe

{%= countWithNull(array) %}

Exemplo

{%= countOnlyNull([4,0,1,6,0,0]) %}

Retorna 6.

Distinto distinct

A função distinct é usada para obter valores de uma matriz ou lista com valores duplicados removidos.

Sintaxe

{%= distinct(array) %}

Exemplo

A operação a seguir especifica as pessoas que fizeram pedidos em mais de um armazenamento.

{%= distinct(person.orders.storeId).count() > 1 %}

Contagem distinta com nulo distinct-count-with-null

A função distinctCountWithNull é usada para contar o número de valores diferentes em uma lista, incluindo os valores nulos.

Sintaxe

{%= distinctCountWithNull(array) %}

Exemplo

{%= distinctCountWithNull([10,2,10,null]) %}

Retorna 3.

Primeiro item head

A função head é usada para retornar o primeiro item em uma matriz ou lista.

Sintaxe

{%= head(array) %}

Exemplo

A operação a seguir retorna a primeira das cinco ordens principais com o preço mais alto. Mais informações sobre a função topN podem ser encontradas na primeira n da seção de matriz.

{%= head(topN(orders,price, 5)) %}

Classificar e obter o primeiro N na matriz first-n

A função topN classifica uma matriz em ordem decrescente com base na expressão numérica fornecida e retorna os primeiros N itens. Se o tamanho da matriz for menor que N, ela retornará toda a matriz classificada.

Esta função
Sintaxe

{%= topN(array, value, amount) %}
Argumento
Descrição
{ARRAY}
A matriz ou lista que deve ser classificada.
{VALUE}
A propriedade na qual classificar a matriz ou lista.
{AMOUNT}
O número de itens a serem retornados.

Exemplo

A operação a seguir retorna as cinco primeiras ordens com o preço mais baixo.

{%= topN(orders,price, 5) %}

Entrada in

A função in é usada para determinar se um item é membro de uma matriz ou lista.

Sintaxe

{%= in(value, array) %}

Exemplo

A operação a seguir define as pessoas com aniversários em março, junho ou setembro.

{%= in (person.birthMonth, [3, 6, 9]) %}

Inclui includes

A função includes é usada para determinar se uma matriz ou lista contém um determinado item.

Sintaxe

{%= includes(array,item) %}

Exemplo

A operação a seguir define as pessoas cuja cor favorita inclui vermelho.

{%= includes(person.favoriteColors,"red") %}

Interseta intersects

A função intersects é usada para determinar se duas matrizes ou listas têm pelo menos um membro comum.

Sintaxe

{%= intersects(array1, array2) %}

Exemplo

A operação a seguir define as pessoas cujas cores favoritas incluem pelo menos uma das cores vermelha, azul ou verde.

{%= intersects(person.favoriteColors,["red", "blue", "green"]) %}

Classificar e obter o último N na matriz last-n

A função bottomN classifica uma matriz em ordem crescente com base na expressão numérica fornecida e retorna os primeiros N itens. Se o tamanho da matriz for menor que N, ela retornará toda a matriz classificada.

Sintaxe

{%= bottomN(array, value, amount) %}
Argumento
Descrição
{ARRAY}
A matriz ou lista que deve ser classificada.
{VALUE}
A propriedade na qual classificar a matriz ou lista.
{AMOUNT}
O número de itens a serem retornados.

Exemplo

A operação a seguir retorna as cinco últimas ordens com o preço mais alto.

{%= bottomN(orders,price, 5) %}

Não está em notin

A função notIn é usada para determinar se um item não é membro de uma matriz ou lista.

NOTE
A função notIn também garante que nenhum dos valores seja igual a nulo. Portanto, os resultados não são uma negação exata da função in.

Sintaxe

{%= notIn(value, array) %}

Exemplo

A operação a seguir define as pessoas com aniversários que não são em março, junho ou setembro.

{%= notIn(person.birthMonth ,[3, 6, 9]) %}

Subconjunto de subset

A função subsetOf é usada para determinar se uma matriz específica (matriz A) é um subconjunto de outra matriz (matriz B). Em outras palavras, que todos os elementos na matriz A são elementos da matriz B.

Sintaxe

{%= subsetOf(array1, array2) %}

Exemplo

A operação a seguir define as pessoas que visitaram todas as cidades favoritas.

{%= subsetOf(person.favoriteCities,person.visitedCities) %}

Superconjunto de superset

A função supersetOf é usada para determinar se uma matriz específica (matriz A) é um superconjunto de outra matriz (matriz B). Em outras palavras, essa matriz A contém todos os elementos na matriz B.

Sintaxe

{%= supersetOf(array1, array2) %}

Exemplo

A operação seguinte define as pessoas que comeram sushi e pizza pelo menos uma vez.

{%= supersetOf(person.eatenFoods,["sushi", "pizza"]) %}

Iterar em uma matriz each-loop

Use o auxiliar de bloco {{#each}} do Handlebars para executar um loop sobre uma matriz e renderizar o conteúdo para cada item em conteúdo personalizado (email, SMS, push).

NOTE
{{#each}} está disponível somente no editor de personalização (corpo do email, SMS, conteúdo de push). Não é suportado na atividade de condição de jornada. Para filtrar ou corresponder itens de uma matriz dentro de uma condição de jornada, use funções de gerenciamento de coleções.

Sintaxe

{{#each arrayAttribute}}
  {{this}}
{{/each}}
Exemplo — Listar todos os itens em uma matriz
code language-handlebars
{{#each profile.purchases.items}}
  - {{this.name}}: {{this.price}}€
{{/each}}

Saída (exemplo):

code language-none
- Running shoes: 89€
- Water bottle: 15€
- Gym bag: 45€
Exemplo — Acessar o índice de loop

Usar @index para acessar a posição de loop atual (com base em 0):

code language-handlebars
{{#each profile.preferences.languages}}
  {{@index}}: {{this}}
{{/each}}

Saída (exemplo):

code language-none
0: English
1: French
2: Spanish
Exemplo — Renderização condicional dentro de um loop

Use o bloco {%#if%} dentro de {{#each}} para renderizar o conteúdo somente quando uma condição for atendida:

note
NOTE
Não há suporte para {% if %} / {% endif %}. Em vez disso, use {%#if%} / {%/if%}. Além disso, this.<field> não funciona dentro de expressões de condição do PQL — faça referência ao campo diretamente usando o nome do atributo (por exemplo, order.status).
code language-handlebars
{{#each profile.orders as |order|}}
  {%#if order.status = "pending"%}
  Your order {{order.id}} is still pending.
  {%/if%}
{{/each}}

Esse é o padrão recomendado para simular uma “quebra na condição” — somente os itens correspondentes à condição produzem saída.

recommendation-more-help
journey-optimizer-help