Fonctions de liste et de tableau arrays

Utilisez ces fonctions pour faciliter l’interaction avec des tableaux, des listes et des chaînes.

Nombre uniquement nul count-only-null

La fonction countOnlyNull sert à compter le nombre de valeurs nulles dans une liste.

Syntaxe

{%= countOnlyNull(array) %}

Exemple

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

Renvoie 3.

Nombre avec nul count-with-null

La fonction countWithNull est utilisée pour compter tous les éléments d’une liste, y compris les valeurs nulles.

Syntaxe

{%= countWithNull(array) %}

Exemple

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

Renvoie 6.

Distinct distinct

La fonction distinct est utilisée pour obtenir les valeurs d’un tableau ou d’une liste dont les valeurs en double sont supprimées.

Syntaxe

{%= distinct(array) %}

Exemple

L’opération suivante définit les personnes qui ont passé des commandes dans plusieurs magasins.

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

Nombre distinct avec nul distinct-count-with-null

La fonction distinctCountWithNull sert à compter le nombre de valeurs différentes dans une liste, y compris les valeurs nulles.

Syntaxe

{%= distinctCountWithNull(array) %}

Exemple

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

Renvoie 3.

Premier élément head

La fonction head est utilisée pour renvoyer le premier élément dans un tableau ou une liste.

Syntaxe

{%= head(array) %}

Exemple

L’opération suivante renvoie la première des cinq principales commandes au prix le plus élevé. Vous trouverez plus d’informations sur la fonction topN dans la section First n in array.

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

Trier et obtenir les N premiers dans le tableau first-n

La fonction topN trie un tableau par ordre décroissant en fonction de l’expression numérique donnée et renvoie les N premiers éléments. Si la taille du tableau est inférieure à N, il renvoie l’ensemble du tableau trié.

Cette fonction
Syntaxe

{%= topN(array, value, amount) %}
Argument
Description
{ARRAY}
Tableau ou liste à trier.
{VALUE}
Propriété dans laquelle trier le tableau ou la liste.
{AMOUNT}
Nombre d’éléments à renvoyer.

Exemple

L’opération suivante renvoie les cinq premières commandes au prix le plus bas.

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

Dans in

La fonction in permet de déterminer si un élément est un membre d’un tableau ou d’une liste.

Syntaxe

{%= in(value, array) %}

Exemple

L’opération suivante définit les personnes dont l’anniversaire est en mars, juin ou septembre.

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

Inclut includes

La fonction includes permet de déterminer si un tableau ou une liste contient un élément donné.

Syntaxe

{%= includes(array,item) %}

Exemple

L’opération suivante définit les personnes dont le rouge est l’une des couleurs préférées.

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

Intersections intersects

La fonction intersects permet de déterminer si deux tableaux ou deux listes ont au moins un membre commun.

Syntaxe

{%= intersects(array1, array2) %}

Exemple

L’opération suivante définit les personnes dont les couleurs préférées comprennent au moins le rouge, le bleu ou le vert.

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

Trier et obtenir les N derniers dans le tableau last-n

La fonction bottomN trie un tableau par ordre croissant en fonction de l’expression numérique donnée et renvoie les N premiers éléments. Si la taille du tableau est inférieure à N, il renvoie l’ensemble du tableau trié.

Syntaxe

{%= bottomN(array, value, amount) %}
Argument
Description
{ARRAY}
Tableau ou liste à trier.
{VALUE}
Propriété dans laquelle trier le tableau ou la liste.
{AMOUNT}
Nombre d’éléments à renvoyer.

Exemple

L’opération suivante renvoie les cinq dernières commandes au prix le plus élevé.

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

Pas dans notin

La fonction notIn permet de déterminer si un élément n’est pas un membre d’un tableau ou d’une liste.

NOTE
La fonction notIn assure également qu'aucune valeur n'est nulle. Par conséquent, les résultats ne sont pas une négation exacte de la fonction in.

Syntaxe

{%= notIn(value, array) %}

Exemple

L’opération suivante définit les personnes dont l’anniversaire n’est ni en mars, ni en juin, ni en septembre.

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

Sous-ensemble de subset

La fonction subsetOf sert à déterminer si un tableau spécifique (tableau A) est un sous-ensemble d’un autre tableau (tableau B). En d’autres termes, elle permet de déterminer si tous les éléments du tableau A sont des éléments du tableau B.

Syntaxe

{%= subsetOf(array1, array2) %}

Exemple

L’opération suivante définit les personnes qui ont visité toutes leurs villes préférées.

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

Sur-ensemble de superset

La fonction supersetOf sert à déterminer si un tableau spécifique (tableau A) est un sur-ensemble d’un autre tableau (tableau B). En d’autres termes, elle permet de déterminer si le tableau A contient tous les éléments du tableau B.

Syntaxe

{%= supersetOf(array1, array2) %}

Exemple

L’opération suivante définit les personnes qui ont mangé des sushis et de la pizza au moins une fois.

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

Itérer sur un tableau each-loop

Utilisez l’assistant de bloc de {{#each}} Handlebars pour effectuer une boucle sur un tableau et effectuer le rendu du contenu pour chaque élément de contenu personnalisé (e-mail, SMS, notification push).

NOTE
{{#each}} est disponible uniquement dans l’éditeur de personnalisation (corps de l’e-mail, SMS, contenu push). Elle n’est pas prise en charge dans l’activité de condition de parcours. Pour filtrer ou faire correspondre des éléments d’un tableau dans une condition de parcours, utilisez plutôt des fonctions de gestion des collections.

Syntaxe

{{#each arrayAttribute}}
  {{this}}
{{/each}}
Exemple — Liste de tous les éléments d'un tableau
code language-handlebars
{{#each profile.purchases.items}}
  - {{this.name}}: {{this.price}}€
{{/each}}

Sortie (exemple) :

code language-none
- Running shoes: 89€
- Water bottle: 15€
- Gym bag: 45€
Exemple — Accès à l'index de boucle

Utilisez @index pour accéder à la position actuelle de la boucle (basée sur 0) :

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

Sortie (exemple) :

code language-none
0: English
1: French
2: Spanish
Exemple — Rendu conditionnel dans une boucle

Utilisez le bloc {%#if%} à l’intérieur de {{#each}} pour effectuer le rendu du contenu uniquement lorsqu’une condition est remplie :

note
NOTE
Les {% if %} / {% endif %} ne sont pas pris en charge. Utilisez {%#if%} / {%/if%} à la place. En outre, this.<field> ne fonctionne pas dans les expressions de condition PQL — référencez le champ directement à l’aide du nom d’attribut (par exemple, order.status).
code language-handlebars
{{#each profile.orders as |order|}}
  {%#if order.status = "pending"%}
  Your order {{order.id}} is still pending.
  {%/if%}
{{/each}}

Il s’agit du modèle recommandé pour simuler une « rupture sur condition » : seuls les éléments correspondant à la condition produisent une sortie.

recommendation-more-help
journey-optimizer-help