清單函式 list-functions
清單函式可讓您操控和處理歷程運算式中的值集合。 這些功能對於篩選、排序、轉換和分析客戶歷程中的陣列和清單至關重要。
當您有以下需要時,請使用清單函式:
- 根據條件(篩選,getListItem)從集合中篩選及擷取特定專案
- 以遞增或遞減順序排序及組織清單專案(排序)
- 移除重複專案,並從清單(distinct, distinctWithNull)取得唯一值
- 檢查集合中是否存在值(in)
- 限制從清單傳回的專案數(limit)
- 取得清單(listSize)的大小,或將清單轉換為不同的格式(serializeList)
- 執行集合作業,例如在清單之間尋找共同元素(相交)
清單函式提供強大的工具,用於處理複雜的資料結構,實現複雜的資料操作和根據收集內容的條件式邏輯。
distinct distinct
傳回給定清單的不同值或物件。 會忽略Null專案。
distinct(<parameters>)| table 0-row-3 1-row-3 2-row-3 | ||
|---|---|---|
| 參數 | 類型 | 說明 |
| listToProcess | listString、listBoolean、listInteger、listDecimal、listDuration、listDateTime、listDateTimeOnly、listDateOnly或listObject | 要處理的清單。 對於listObject,它必須是欄位參考。 |
| keyAttributeName | 字串 | 此引數是選用專案,且僅適用於listObject。 如果未提供引數,如果所有屬性的值都相同,則會將物件視為重複。 否則,如果給定的屬性具有相同的值,則會將物件視為重複。 |
distinct(<listInteger>)
傳回整數清單。
distinct(<listDecimal>)
傳回小數點清單。
distinct(<listString>)
傳回字串清單。
distinct(<listDateTimeOnly>)
傳回日期時間清單,不考慮時區。
distinct(<listDateTime>)
傳回日期時間清單。
distinct(<listDateOnly>)
傳回日期清單。
distinct(<listBoolean>)
傳回布林值清單。
distinct(<listDuration>)
傳回持續時間清單。
distinct(<listObject>)
distinct(<listObject>,<string>)
傳回物件清單。
distinct([10,2,10,null])
傳回[10, 2]。
distinctWithNull distinctWithNull
傳回給定清單的不同值或物件。 如果清單中至少有一個null專案,則傳回的清單中會出現null專案。
distinctWithNull(<parameters>)| table 0-row-3 1-row-3 | ||
|---|---|---|
| 參數 | 類型 | 說明 |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly | 要處理的清單。 |
distinctWithNull(<listInteger>)
傳回整數清單。
distinctWithNull(<listDecimal>)
傳回小數點清單。
distinctWithNull(<listString>)
傳回字串清單。
distinctWithNull(<listDateTimeOnly>)
傳回日期時間清單,不考慮時區。
distinctWithNull(<listDateTime>)
傳回日期時間清單。
distinctWithNull(<listDateOnly>)
傳回日期清單。
distinctWithNull(<listBoolean>)
傳回布林值清單。
distinctWithNull(<listDuration>)
傳回持續時間清單。
distinctWithNull([10,2,10,null])
傳回[10, 2, null]
注意:此函式不支援引數<listObject>。
篩選 filter
傳回listObject,其中物件的索引鍵屬性符合其中一個指定的索引鍵值。
filter(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| 參數 | 類型 | 說明 |
| listToFilter | listObject | 要篩選的物件清單。 它必須是欄位參考。 |
| keyAttributeName | 字串 | 指定清單物件中的屬性名稱,用來作為篩選的索引鍵 |
| keyValueList | list | 用於篩選的索引鍵值陣列 |
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)
傳回listObject。
以下是在傳入事件「myevent」中傳遞的裝載範例:
| code language-json |
|---|
|
您可以使用下列運算式:
| code language-json |
|---|
|
傳回listObject,其中包含以"product2"和"product3"作為ID的兩個物件。
getListItem getListItem
傳回指定索引處的清單專案。
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 | |
|---|---|
| 參數 | 類型 |
| list | listString |
| list | listBoolean |
| list | listInteger |
| list | listDecimal |
| list | listDuration |
| list | listDateTime |
| list | listDateTimeOnly |
| list | listDateOnly |
| 索引 | 整數 |
getListItem(<listInteger>,<index>)
傳回整數。
getListItem(<listDecimal>,<index>)
傳回小數。
getListItem(<listString>,<index>)
傳回字串。
getListItem(<listDateTimeOnly>,<index>)
傳回日期時間,不考慮時區。
getListItem(<listDateTime>,<index>)
傳回日期時間。
getListItem(<listDateOnly>,<index>)
傳回日期清單。
getListItem(<listBoolean>,<index>)
傳回布林值。
getListItem(<listDuration>,<index>)
傳回持續時間。
getListItem([10, 2, 3], 1)
傳回「2」
getListItem(["A", "B", "C"], 2)
傳回「C」
具有事件欄位「event.appVersion」且值為「20.45.2.3434」的範例
split(@event{event.appVersion}, "\\.")
傳回["20", "45", "2", "3434"]
getListItem(split(@event{event.appVersion}, "\\."), 0)
傳回「20」
在 in
檢查第一個引數值是否在清單中。 檢查會透過每個引數值上的「等於」來執行。 如果找到引數值,則傳回true,否則傳回false。
<expression>的型別必須與清單的專案相符。 提醒清單的專案型別必須彼此相符。
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 | |
|---|---|
| 參數 | 類型 |
| 字串 | 字串 |
| 布林值 | 布林值 |
| 整數 | 整數 |
| 小數 | 小數 |
| 持續時間 | 持續時間 |
| 日期時間 | 日期時間 |
| DateTimeOnly | DateTimeOnly |
| 清單 | listString |
| 清單 | listBoolean |
| 清單 | listInteger |
| 清單 | listDecimal |
| 清單 | listDuration |
| 清單 | listDateTime |
| 清單 | listDateTimeOnly |
| 清單 | 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>)
傳回布林值。
in(4,[4,5,3,4])
傳回true。
in(8,[4,5,3,4])
傳回false。
in(#{ExperiencePlatform.ProfileFieldGroup.profile.person.gender}, ["male"])
相交 intersect
傳回兩個輸入清單中的通用值。 如果兩個清單之一為空,則會傳回空白清單。
intersect(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| 參數 | 類型 |
| 清單1 | list |
| 清單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):清單布林值
傳回清單。
| code language-json |
|---|
|
傳回["sports","news"]
| code language-json |
|---|
|
傳回設定檔屬性和指定類別清單之間的通用專案。
| code language-json |
|---|
|
傳回設定檔屬性和指定事件欄位之間的通用專案。
limit limit
傳回清單的第一個或最後的N個元素。
limit(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| 參數 | 類型 | 說明 |
| listToProcess | listString、listBoolean、listInteger、listDecimal、listDuration、listDateTime、listDateTimeOnly、listDateOnly或listObject | 要考量的清單。 對於listObject,它必須是欄位參考。 |
| numberofItems | 整數 | 要從指定清單傳回的專案數。 |
| firstOrLastItems | 布林值 | 此引數為選用(預設為true)。 true會傳回第一個專案。 false會傳回最後一個專案。 |
limit(<listString>,<integer>)
limit(<listString>,<integer>,<boolean>)
傳回字串清單。
limit(<listInteger>,<integer>)
limit(<listInteger>,<integer>,<boolean>)
傳回整數清單。
limit(<listDecimal>,<integer>)
limit(<listDecimal>,<integer>,<boolean>)
傳回小數點清單。
limit(<listBoolean>,<integer>)
limit(<listBoolean>,<integer>,<boolean>)
傳回布林值清單。
limit(<listDateOnly>,<integer>)
limit(<listDateOnly>,<integer>,<boolean>)
傳回日期清單。
limit(<listDateTimeOnly>,<integer>)
limit(<listDateTimeOnly>,<integer>,<boolean>)
傳回日期時間清單,不考慮時區。
limit(<listDateTime>,integer>)
limit(<listDateTime>,<integer>,<boolean>)
傳回日期時間清單。
limit(<listDuration>,<integer>)
limit(<listDuration>,<integer>,<boolean>)
傳回持續時間清單。
limit(<listObject>,<integer>)
limit(<listObject>,<integer>,<boolean>)
傳回物件清單。
limit(["A", "B", "C", "D", "E"], 3)
傳回["A","B","C"]。
limit(["A", "B", "C", "D", "E"], 3, false)
傳回["C","D","E"]。
listSize listSize
計算清單中的元素數量。
listSize(<parameters>)| table 0-row-3 1-row-3 | ||
|---|---|---|
| 參數 | 類型 | 說明 |
| listToProcess | listString、listBoolean、listInteger、listDecimal、listDuration、listDateTime、listDateTimeOnly、listDateOnly或listObject | 要處理的清單。 對於listObject,它必須是欄位參考。 listObject不能包含null物件。 |
listSize(<listInteger>)
listSize(<listDecimal>)
listSize(<listString>)
listSize(<listBoolean>)
listSize(<listDateTimeOnly>)
listSize(<listDateTime>)
listSize(<listDateOnly>)
listSize(<listDuration>)
傳回整數。
listSize(<listObject>)
listSize([10,2,3])
傳回3。
listSize(@event{my_event.productListItems})
傳回給定物件陣列(listObject型別)中的物件數目。
serializeList serializeList
將指定清單(listObject以外的任何型別)轉換為字串。
serializeList(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| 參數 | 類型 | 說明 |
| listToProcess | listString, listBoolean, listInteger, listDecimal, listDuration, listDateTime, listDateTimeOnly, listDateOnly | 要轉換為字串的清單。 |
| 分隔符號 | 字串 | 輸出字串中每個清單元素之間的分隔符號。 |
| addQuotes | 布林值 | 此引數指出輸出字串中的每個元素是否應該包含引號(true)。 |
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>)
傳回字串。
serializeList(["Hello","World"], " ", false)
傳回「Hello World」。
serializeList(["Hello", "World"], ",", true)
傳回"Hello"、"World"。
sort sort
以自然順序排序值或物件清單。
sort(<parameters>)| table 0-row-3 1-row-3 2-row-3 3-row-3 | ||
|---|---|---|
| 參數 | 類型 | 說明 |
| listToSort | listString、listBoolean、listInteger、listDecimal、listDuration、listDateTime、listDateTimeOnly、listDateOnly或listObject | 要排序的清單。 對於listObject,它必須是欄位參考。 |
| keyAttributeName | 字串 | 此引數僅適用於listObject。 指定清單物件中的屬性名稱會作為排序的索引鍵。 |
| sortingOrder | 布林值 | 遞增(true)或遞減(false) |
sort(<listInteger>,<boolean>)
傳回整數清單。
sort(<listDecimal>,<boolean>)
傳回小數點清單。
sort(<listString>,<boolean>)
傳回字串清單。
sort(<listDateTimeOnly>,<boolean>)
傳回日期時間清單,不考慮時區。
sort(<listDateTime>,<boolean>)
傳回日期時間清單。
sort(<listDateOnly>,<boolean>)
傳回日期清單。
sort(<listBoolean>,<boolean>)
傳回布林值清單。
sort(<listObject>,<string>,<boolean>)
傳回物件清單。
sort(["A", "C", "B"], true)
傳回["A","B","C"]。
sort([1, 3, 2], false)
傳回[3, 2, 1]。
sort(@event{my_event.productListItems}, "SKU", true)
傳回依SKU屬性排序的listObject (遞增順序)