Funzioni array ed elenco arrays

Utilizzare queste funzioni per semplificare l’interazione con array, elenchi e stringhe.

Conteggio solo nulle count-only-null

La funzione countOnlyNull viene utilizzata per contare il numero di valori Null in un elenco.

Sintassi

{%= countOnlyNull(array) %}

Esempio

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

Restituisce 3.

Conteggio con valori Null count-with-null

La funzione countWithNull viene utilizzata per contare tutti gli elementi di un elenco, inclusi i valori Null.

Sintassi

{%= countWithNull(array) %}

Esempio

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

Restituisce 6.

Distinct distinct

La funzione distinct viene utilizzata per ottenere valori da un array o da un elenco con valori duplicati rimossi.

Sintassi

{%= distinct(array) %}

Esempio

L’operazione seguente specifica gli utenti che hanno effettuato ordini in più di un negozio.

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

Conteggio distinto con valore null distinct-count-with-null

La funzione distinctCountWithNull viene utilizzata per contare il numero di valori diversi in un elenco, inclusi i valori Null.

Sintassi

{%= distinctCountWithNull(array) %}

Esempio

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

Restituisce 3.

Primo elemento head

La funzione head viene utilizzata per restituire il primo elemento di un array o di un elenco.

Sintassi

{%= head(array) %}

Esempio

L’operazione seguente restituisce il primo dei primi cinque ordini con il prezzo più alto. Ulteriori informazioni sulla funzione topN sono disponibili nella sezione first n in array.

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

Ordinare e ottenere il primo N nell’array first-n

La funzione topN ordina una matrice in ordine decrescente in base all’espressione numerica specificata e restituisce i primi N elementi. Se la dimensione dell’array è inferiore a N, restituisce l’intero array ordinato.

Questa funzione
Sintassi

{%= topN(array, value, amount) %}
Argomento
Descrizione
{ARRAY}
Matrice o elenco da ordinare.
{VALUE}
Proprietà in cui ordinare l’array o l’elenco.
{AMOUNT}
Il numero di elementi da restituire.

Esempio

L’operazione seguente restituisce i primi cinque ordini con il prezzo più basso.

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

In entrata in

La funzione in viene utilizzata per determinare se un elemento è membro di un array o di un elenco.

Sintassi

{%= in(value, array) %}

Esempio

L’operazione seguente definisce le persone il cui compleanno cade in marzo, giugno o settembre.

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

Include includes

La funzione includes viene utilizzata per determinare se un array o un elenco contiene un dato elemento.

Sintassi

{%= includes(array,item) %}

Esempio

L’operazione seguente definisce le persone il cui colore preferito include il rosso.

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

Intersects intersects

La funzione intersects viene utilizzata per determinare se due array o elenchi hanno almeno un membro comune.

Sintassi

{%= intersects(array1, array2) %}

Esempio

L’operazione seguente definisce le persone i cui colori preferiti includono almeno uno rosso, blu o verde.

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

Ordina e ottieni l’ultimo N nell’array last-n

La funzione bottomN ordina una matrice in ordine crescente in base all’espressione numerica specificata e restituisce i primi N elementi. Se la dimensione dell’array è inferiore a N, restituisce l’intero array ordinato.

Sintassi

{%= bottomN(array, value, amount) %}
Argomento
Descrizione
{ARRAY}
Matrice o elenco da ordinare.
{VALUE}
Proprietà in cui ordinare l’array o l’elenco.
{AMOUNT}
Il numero di elementi da restituire.

Esempio

L’operazione seguente restituisce gli ultimi cinque ordini con il prezzo più alto.

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

Non in notin

La funzione notIn viene utilizzata per determinare se un elemento non è un membro di un array o di un elenco.

NOTE
La funzione notIn also assicura che nessuno dei due valori sia uguale a null. Pertanto, i risultati non sono una negazione esatta della funzione in.

Sintassi

{%= notIn(value, array) %}

Esempio

L’operazione seguente definisce le persone il cui compleanno non è in marzo, giugno o settembre.

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

Sottoinsieme di subset

La funzione subsetOf viene utilizzata per determinare se un array specifico (array A) è un sottoinsieme di un altro array (array B). In altre parole, che tutti gli elementi nell’array A sono elementi dell’array B.

Sintassi

{%= subsetOf(array1, array2) %}

Esempio

L’operazione seguente definisce le persone che hanno visitato tutte le loro città preferite.

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

Soprainsieme di superset

La funzione supersetOf viene utilizzata per determinare se un array specifico (array A) è un superset di un altro array (array B). In altre parole, l’array A contiene tutti gli elementi dell’array B.

Sintassi

{%= supersetOf(array1, array2) %}

Esempio

L’operazione seguente definisce le persone che hanno mangiato sushi e pizza almeno una volta.

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

Iterazione su un array each-loop

Utilizza Handlebars {{#each}} block helper per eseguire il loop su un array ed eseguire il rendering del contenuto per ogni elemento in contenuto personalizzato (e-mail, SMS, push).

NOTE
{{#each}} è disponibile solo nell'editor di personalizzazione (contenuto e-mail, SMS, contenuto push). non è supportato nell'attività condizione percorso. Per filtrare o associare gli elementi di un array all'interno di una condizione di percorso, utilizzare funzioni di gestione della raccolta.

Sintassi

{{#each arrayAttribute}}
  {{this}}
{{/each}}
Esempio — Elenca tutti gli elementi di un array
code language-handlebars
{{#each profile.purchases.items}}
  - {{this.name}}: {{this.price}}€
{{/each}}

Output (esempio):

code language-none
- Running shoes: 89€
- Water bottle: 15€
- Gym bag: 45€
Esempio — accedere all'indice del ciclo

Utilizza @index per accedere alla posizione del ciclo corrente (basata su 0):

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

Output (esempio):

code language-none
0: English
1: French
2: Spanish
Esempio — Rendering condizionale all'interno di un loop

Utilizza il blocco {%#if%} in {{#each}} per eseguire il rendering del contenuto solo quando viene soddisfatta una condizione:

note
NOTE
{% if %} / {% endif %} non sono supportati. Utilizza invece {%#if%} / {%/if%}. Inoltre, this.<field> non funziona all'interno di espressioni di condizione di PQL. Fare riferimento al campo direttamente utilizzando il nome attributo (ad esempio order.status).
code language-handlebars
{{#each profile.orders as |order|}}
  {%#if order.status = "pending"%}
  Your order {{order.id}} is still pending.
  {%/if%}
{{/each}}

Si tratta del modello consigliato per simulare un “break on condition”: solo gli elementi che corrispondono alla condizione producono output.

recommendation-more-help
journey-optimizer-help