Funciones de lista list-functions
Las funciones de lista permiten manipular y trabajar con colecciones de valores dentro de las expresiones de recorrido. Estas funciones son esenciales para filtrar, ordenar, transformar y analizar matrices y listas en los recorridos del cliente.
Utilice las funciones de lista cuando necesite:
- Filtrar y extraer elementos específicos de colecciones en función de criterios (filter, getListItem)
- Ordenar y organizar elementos de lista en orden ascendente o descendente (sort)
- Quitar duplicados y obtener valores únicos de las listas (distinct, distinctWithNull)
- Comprobar si existen valores dentro de las colecciones (en)
- Limitar el número de elementos devueltos de una lista (limit)
- Obtener el tamaño de una lista (listSize) o transformar listas en formatos diferentes (serializeList)
- Realizar operaciones de conjunto como buscar elementos comunes entre listas (intersect), combinar listas (mergeLists) o restar una lista de otra (differenceLists)
Las funciones de lista proporcionan potentes herramientas para trabajar con estructuras de datos complejas, lo que permite una manipulación de datos sofisticada y una lógica condicional basada en el contenido de la colección.
differenceLists differenceLists
Devuelve los elementos de la primera lista que no están presentes en la segunda lista (diferencia de conjunto: list 1 - list 2). Las entradas nulas se omiten. El resultado siempre elimina los valores duplicados y conserva el orden de inserción de la primera lista.
differenceLists(<parameters>)| table 0-row-3 1-row-3 2-row-3 | ||
|---|---|---|
| Parámetro | Tipo | Descripción |
| lista 1 | listString, listInteger, listDecimal, listBoolean, listDuration, listDateTime, listDateTimeOnly o listDateOnly | Lista de la que restar. |
| lista 2 | Mismo tipo que la lista 1. | Lista de elementos para quitar de la lista 1. |
differenceLists(listString,listString): listString
differenceLists(listInteger,listInteger): listInteger
differenceLists(listDecimal,listDecimal): listDecimal
differenceLists(listBoolean,listBoolean): listBoolean
differenceLists(listDuration,listDuration): listDuration
differenceLists(listDateTime,listDateTime): listDateTime
differenceLists(listDateTimeOnly,listDateTimeOnly): listDateTimeOnly
differenceLists(listDateOnly,listDateOnly): listDateOnly
| code language-json |
|---|
|
Devuelve ['a','c'].
| code language-json |
|---|
|
Devuelve ['a','b'].
| code language-json |
|---|
|
Devuelve [].
distinct distinct
Devuelve los distintos valores u objetos de una lista determinada. Las entradas nulas se omiten.
distinct(<parameters>)| table 0-row-3 1-row-3 2-row-3 | ||
|---|---|---|
| Parámetro | Tipo | Descripción |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly o listObject | Lista para procesar. Para listObject, debe ser una referencia de campo. |
| keyAttributeName | cadena | Este parámetro es opcional y solo para listObject. Si no se proporciona el parámetro, un objeto se considera duplicado si todos los atributos tienen los mismos valores. De lo contrario, un objeto se considera duplicado si el atributo dado tiene el mismo valor. |
distinct(<listInteger>)
Devuelve una lista de enteros.
distinct(<listDecimal>)
Devuelve una lista de decimales.
distinct(<listString>)
Devuelve una lista de cadenas.
distinct(<listDateTimeOnly>)
Devuelve una lista de horas de fecha sin tener en cuenta la zona horaria.
distinct(<listDateTime>)
Devuelve una lista de fechas y horas.
distinct(<listDateOnly>)
Devuelve una lista de fechas.
distinct(<listBoolean>)
Devuelve una lista de valores booleanos.
distinct(<listDuration>)
Devuelve una lista de duraciones.
distinct(<listObject>)
distinct(<listObject>,<string>)
Devuelve una lista de objetos.
distinct([10,2,10,null])
Devuelve [10, 2].
distinctWithNull distinctWithNull
Devuelve los distintos valores u objetos de una lista determinada. Si la lista tiene al menos una entrada nula, aparecerá una entrada nula en la lista devuelta.
distinctWithNull(<parameters>)| table 0-row-3 1-row-3 | ||
|---|---|---|
| Parámetro | Tipo | Descripción |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly | Lista para procesar. |
distinctWithNull(<listInteger>)
Devuelve una lista de enteros.
distinctWithNull(<listDecimal>)
Devuelve una lista de decimales.
distinctWithNull(<listString>)
Devuelve una lista de cadenas.
distinctWithNull(<listDateTimeOnly>)
Devuelve una lista de horas de fecha sin tener en cuenta la zona horaria.
distinctWithNull(<listDateTime>)
Devuelve una lista de fechas y horas.
distinctWithNull(<listDateOnly>)
Devuelve una lista de fechas.
distinctWithNull(<listBoolean>)
Devuelve una lista de valores booleanos.
distinctWithNull(<listDuration>)
Devuelve una lista de duraciones.
distinctWithNull([10,2,10,null])
Devuelve [10, 2, null]
Nota: El parámetro <listObject> no se admite en esta función.
filter filter
Devuelve un listObject con objetos cuyo atributo key coincide con uno de los valores de clave determinados.
filter(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parámetro | Tipo | Descripción |
| listToFilter | listObject | lista de objetos que se van a filtrar. Debe ser una referencia de campo. |
| keyAttributeName | cadena | nombre del atributo en los objetos de la lista dada, utilizado como clave para el filtrado |
| keyValueList | list | matriz de valores clave para el filtrado |
filter(listObject, string, listString)
filter(listObject, string, listInteger)
filter(listObject, string, listDecimal)
filter(listObject, string, listDateTime)
filter(listObject, string, listDateTimeOnly)
filter(listObject, string, listDateOnly)
filter(listObject, string, listDuration)
filter(listObject, string, listBoolean)
Devuelve un listObject.
Este es un ejemplo de una carga útil pasada en un evento entrante “myevent”:
| code language-json |
|---|
|
Puede utilizar la siguiente expresión:
| code language-json |
|---|
|
Devuelve un listObject que contiene los dos objetos con “product2” y “product3” como id.
getListItem getListItem
Devuelve el elemento de la lista en el índice dado.
getListItem(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 | |
|---|---|
| Parámetro | Tipo |
| list | listString |
| list | listBoolean |
| list | listInteger |
| list | listDecimal |
| list | listDuration |
| list | listDateTime |
| list | listDateTimeOnly |
| list | listDateOnly |
| índice | entero |
getListItem(<listInteger>,<index>)
Devuelve un entero.
getListItem(<listDecimal>,<index>)
Devuelve un valor decimal.
getListItem(<listString>,<index>)
Devuelve una cadena.
getListItem(<listDateTimeOnly>,<index>)
Devuelve una fecha y hora sin considerar la zona horaria.
getListItem(<listDateTime>,<index>)
Devuelve una fecha y hora.
getListItem(<listDateOnly>,<index>)
Devuelve una lista de fechas.
getListItem(<listBoolean>,<index>)
Devuelve un valor booleano.
getListItem(<listDuration>,<index>)
Devuelve una duración.
getListItem([10, 2, 3], 1)
Devuelve “2”
getListItem(["A", "B", "C"], 2)
Devuelve “C”
Ejemplos con un campo de evento “event.appVersion” con valor: “20.45.2.3434”
split(@event{event.appVersion}, "\\.")
Devuelve ["20", "45", "2", "3434"]
getListItem(split(@event{event.appVersion}, "\\."), 0)
Devuelve “20”
en in
Comprueba si el primer valor del argumento está en la lista. La comprobación se realiza mediante un valor Equal en cada argumento value. Devuelve true si se encuentra el valor del argumento; en caso contrario, devuelve false.
El tipo de <expression> debe coincidir con los elementos de la lista. Los tipos de elementos de la lista, como recordatorio, deben coincidir entre sí.
in(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 | |
|---|---|
| Parámetro | Tipo |
| Cadena | Cadena |
| Booleano | Booleano |
| Número entero | Número entero |
| Decimal | Decimal |
| Duración | Duración |
| Fecha/Hora | Fecha/Hora |
| DateTimeOnly | DateTimeOnly |
| Lista | listString |
| Lista | listBoolean |
| Lista | listInteger |
| Lista | listDecimal |
| Lista | listDuration |
| Lista | listDateTime |
| Lista | listDateTimeOnly |
| Lista | listDateOnly |
in(<integer>,<listInteger>)
in(<decimal>,<listDecimal>)
in(<string>,<listString>)
in(<boolean>,<listBoolean>)
in(<dateTimeOnly>,<listDateTimeOnly>)
in(<dateTime>,<listDateTime>)
in(<dateOnly>,<listDateOnly>)
in(<duration>,<listDuration>)
Devuelve un valor booleano.
in(4,[4,5,3,4])
Devuelve verdadero.
in(8,[4,5,3,4])
Devuelve falso.
in(#{ExperiencePlatform.ProfileFieldGroup.profile.person.gender}, ["male"])
intersect intersect
Devuelve los valores comunes de las dos listas de entrada. Si una de las dos listas es nula, devuelve una lista vacía.
intersect(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parámetro | Tipo |
| lista 1 | list |
| lista 2 | list |
intersect(listString,listString): listString
intersect(listDecimal,listDecimal): listDecimal
intersect(listInteger,listInteger): listInteger
intersect(listDateTime,listDateTime): listDateTime
intersect(listDateTimeOnly,listDateTimeOnly): listDateTimeOnly
intersect(listDateOnly,listDateOnly): listDateOnly
intersect(listDuration,listDuration): listDuration
intersect(listBoolean,listBoolean): listBoolean
Devuelve una lista.
| code language-json |
|---|
|
Devuelve [“deportes”, “noticias”]
| code language-json |
|---|
|
Devuelve elementos comunes entre atributos de perfil y una lista de categorías determinada.
| code language-json |
|---|
|
Devuelve elementos comunes entre atributos de perfil y un campo de evento determinado.
límite limit
Devuelve los primeros o últimos elementos N de una lista.
limit(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parámetro | Tipo | Descripción |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly o listObject | Lista a considerar. Para listObject, debe ser una referencia de campo. |
| numberOfItems | entero | Número de elementos que se van a devolver de la lista determinada. |
| firstOrLastItems | Booleano | Este parámetro es opcional (true de forma predeterminada). true devuelve los primeros elementos. false devuelve los últimos elementos. |
limit(<listString>,<integer>)
limit(<listString>,<integer>,<boolean>)
Devuelve una lista de cadenas.
limit(<listInteger>,<integer>)
limit(<listInteger>,<integer>,<boolean>)
Devuelve una lista de enteros.
limit(<listDecimal>,<integer>)
limit(<listDecimal>,<integer>,<boolean>)
Devuelve una lista de decimales.
limit(<listBoolean>,<integer>)
limit(<listBoolean>,<integer>,<boolean>)
Devuelve una lista de valores booleanos.
limit(<listDateOnly>,<integer>)
limit(<listDateOnly>,<integer>,<boolean>)
Devuelve una lista de fechas.
limit(<listDateTimeOnly>,<integer>)
limit(<listDateTimeOnly>,<integer>,<boolean>)
Devuelve una lista de horas de fecha sin tener en cuenta la zona horaria.
limit(<listDateTime>,integer>)
limit(<listDateTime>,<integer>,<boolean>)
Devuelve una lista de fechas y horas.
limit(<listDuration>,<integer>)
limit(<listDuration>,<integer>,<boolean>)
Devuelve una lista de duraciones.
limit(<listObject>,<integer>)
limit(<listObject>,<integer>,<boolean>)
Devuelve una lista de objetos.
limit(["A", "B", "C", "D", "E"], 3)
Devuelve ["A","B","C"].
limit(["A", "B", "C", "D", "E"], 3, false)
Devuelve ["C","D","E"].
listSize listSize
Cuenta el número de elementos de la lista.
listSize(<parameters>)| table 0-row-3 1-row-3 | ||
|---|---|---|
| Parámetro | Tipo | Descripción |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly o listObject | Lista para procesar. Para listObject, debe ser una referencia de campo. Un listObject no puede contener un objeto nulo. |
listSize(<listInteger>)
listSize(<listDecimal>)
listSize(<listString>)
listSize(<listBoolean>)
listSize(<listDateTimeOnly>)
listSize(<listDateTime>)
listSize(<listDateOnly>)
listSize(<listDuration>)
Devuelve un entero.
listSize(<listObject>)
listSize([10,2,3])
Devuelve 3.
listSize(@event{my_event.productListItems})
Devuelve el número de objetos de una matriz determinada de objetos (tipo listObject).
mergeLists mergeLists
Combina dos listas. Cuando deduplicate tiene true, devuelve la unión de las dos listas con los valores duplicados eliminados. Cuando deduplicate tiene false, devuelve la concatenación de las dos listas (los elementos de la lista 1 seguidos de los elementos de la lista 2), conservando los duplicados. Las entradas nulas se omiten.
Nota: El parámetro deduplicate debe ser un literal true o false, no una expresión booleana dinámica.
mergeLists(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parámetro | Tipo | Descripción |
| lista 1 | listString, listInteger, listDecimal, listBoolean, listDuration, listDateTime, listDateTimeOnly o listDateOnly | Primera lista. Sus elementos se agregan primero al resultado. |
| lista 2 | Mismo tipo que la lista 1. | Segunda lista. Sus elementos se agregan después de los elementos de la lista 1. |
| deduplicar | literal booleano | true devuelve la unión de ambas listas con duplicados eliminados. false devuelve la concatenación de ambas listas, conservando los duplicados. Debe ser un literal true o false. |
mergeLists(listString,listString,boolean): listString
mergeLists(listInteger,listInteger,boolean): listInteger
mergeLists(listDecimal,listDecimal,boolean): listDecimal
mergeLists(listBoolean,listBoolean,boolean): listBoolean
mergeLists(listDuration,listDuration,boolean): listDuration
mergeLists(listDateTime,listDateTime,boolean): listDateTime
mergeLists(listDateTimeOnly,listDateTimeOnly,boolean): listDateTimeOnly
mergeLists(listDateOnly,listDateOnly,boolean): listDateOnly
| code language-json |
|---|
|
Devuelve ['a','b','c'].
| code language-json |
|---|
|
Devuelve ['a','b','b','c'].
serializeList serializeList
Convierte una lista determinada (cualquier tipo excepto listObject) en una cadena.
serializeList(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parámetro | Tipo | Descripción |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly | Lista para convertir en cadena. |
| separador | cadena | Separador entre cada elemento de lista en la cadena de salida. |
| addQuotes | Booleano | Este parámetro indica si cada elemento de la cadena de salida debe incluir comillas (true) o no (false). |
serializeList(<listInteger>,<string>,<boolean>)
serializeList(<listDecimal>,<string>,<boolean>)
serializeList(<listString>,<string>,<boolean>)
serializeList(<listBoolean>,<string>,<boolean>)
serializeList(<listDateTimeOnly>,<string>,<boolean>)
serializeList(<listDateTime>,<string>,<boolean>)
serializeList(<listDateOnly>,<string>,<boolean>)
serializeList(<listDuration>,<string>,<boolean>)
Devolver una cadena.
serializeList(["Hello","World"], " ", false)
Devuelve “Hello World”.
serializeList(["Hello", "World"], ",", true)
Devuelve “Hello”,“World”.
ordenar sort
Ordena una lista de valores u objetos en orden natural.
sort(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| Parámetro | Tipo | Descripción |
| listToSort | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly o listObject | Lista para ordenar. Para listObject, debe ser una referencia de campo. |
| keyAttributeName | cadena | Este parámetro solo es para listObject. El nombre del atributo en los objetos de la lista dada se utiliza como clave para ordenar. |
| sortingOrder | Booleano | Ascendente (true) o descendente (false) |
sort(<listInteger>,<boolean>)
Devuelve una lista de enteros.
sort(<listDecimal>,<boolean>)
Devuelve una lista de decimales.
sort(<listString>,<boolean>)
Devuelve una lista de cadenas.
sort(<listDateTimeOnly>,<boolean>)
Devuelve una lista de horas de fecha sin tener en cuenta la zona horaria.
sort(<listDateTime>,<boolean>)
Devuelve una lista de fechas y horas.
sort(<listDateOnly>,<boolean>)
Devuelve una lista de fechas.
sort(<listBoolean>,<boolean>)
Devuelve una lista de valores booleanos.
sort(<listObject>,<string>,<boolean>)
Devuelve una lista de objetos.
sort(["A", "C", "B"], true)
Devuelve ["A","B","C"].
sort([1, 3, 2], false)
Devuelve [3, 2, 1].
sort(@event{my_event.productListItems}, "SKU", true)
Devuelve el listObject ordenado por atributo SKU (orden ascendente)
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page documents all list functions available in AJO journey expressions, covering how to filter, sort, deduplicate, check membership, limit, serialize, merge, subtract, and find intersections of lists and arrays.
Intents:
- Remove duplicate values from a list using
distinct(ignoring nulls) ordistinctWithNull(preserving nulls) - Filter a listObject to return only objects matching specific key values using
filter - Retrieve an element at a specific index from a list using
getListItem - Check whether a value exists in a list using
in - Find common elements between two lists using
intersect - Combine two lists, with or without deduplication, using
mergeLists - Subtract one list from another (set difference) using
differenceLists - Return the first or last N elements of a list using
limit - Count the total number of elements in a list using
listSize - Convert a list to a delimited string using
serializeList - Sort a list in ascending or descending order using
sort
Glossary:
- listObject: A list of complex objects that must be a field reference; cannot contain null objects (product-specific)
- keyAttributeName: An optional string parameter used with
distinct,filter, andsortto identify which object attribute to use for deduplication, filtering, or sorting (product-specific) - intersect: A set operation returning only the elements present in both input lists
- mergeLists: A set operation returning the union (deduplicated) or concatenation (with duplicates) of two lists, depending on the
deduplicateparameter (product-specific) - differenceLists: A set operation returning the items of the first list that are not present in the second list (product-specific)
Guardrails:
distinctWithNulldoes not support the<listObject>parameter typefilterrequires the listObject parameter to be a field reference, not an inline literallistSizeon a listObject requires the list to be a field reference; a listObject cannot contain null objectsserializeListdoes not support thelistObjecttypemergeListsanddifferenceListsonly support scalar list types (string, integer, decimal, boolean, dateTime, dateTimeOnly, dateOnly, duration);listObjectis not supportedmergeLists’sdeduplicateparameter must be a literaltrue/false, not a dynamic boolean expressiondifferenceListsalways deduplicates its result; there is no option to keep duplicates
Terminology:
- Canonical name: List functions — Acronym: none — variants: collection functions, array functions
- Synonyms: “listSize” = “count list elements”; “serializeList” = “join list to string”
- Do not confuse: “distinct” (ignores nulls) ≠ “distinctWithNull” (preserves null as a distinct value)
- Do not confuse: “limit” with third parameter
true(returns first N items) ≠ “limit” withfalse(returns last N items) - Do not confuse: “intersect” (common elements between two lists) ≠ “filter” (elements matching specific key values)
- Do not confuse: “mergeLists” (combines two lists, union or concatenation) ≠ “differenceLists” (subtracts one list from another) ≠ “intersect” (common elements only)
FAQ:
- Q: How do I get the first 3 items of a list? — Use
limit(myList, 3)orlimit(myList, 3, true); the default is to return the first items. - Q: How do I get the last 3 items of a list? — Use
limit(myList, 3, false). - Q: What is the difference between
distinctanddistinctWithNull? —distinctignores null values and excludes them from the result;distinctWithNulltreats null as a distinct value and includes one null entry if any nulls are present. - Q: Can I filter a list of strings with
filter? — No,filteronly works onlistObject; for scalar lists useinordistinctfor deduplication. - Q: How do I check if a value is in a list? — Use
in(value, myList), which returns true if the value is found in the list. - Q: Can I sort a listObject by a specific attribute? — Yes, use
sort(@event{...}, "attributeName", true)where the second parameter is the attribute name and the third is the sort direction (true = ascending). - Q: How do I combine two lists and remove duplicates? — Use
mergeLists(list1, list2, true). - Q: How do I combine two lists but keep duplicate values? — Use
mergeLists(list1, list2, false). - Q: How do I find the items in one list that are not in another? — Use
differenceLists(list1, list2), which returns the items oflist1not present inlist2. - Q: What is the difference between
intersectanddifferenceLists? —intersectreturns items common to both lists;differenceListsreturns items in the first list that are absent from the second list.