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)
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.
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 |
| Entero | 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).
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)