CreateUiDefinition 集合函数

这些函数可用于集合,如 JSON 字符串、数组和对象。

contains

如果字符串包含指定子字符串、数组包含指定值,或对象包含指定键,则返回 true

示例:字符串 contains

以下示例返回 true

"[contains('webapp', 'web')]"

示例:数组 contains

假设 element1 返回 [1, 2, 3]。 以下示例返回 false

"[contains(steps('demoStep').element1, 4)]"

示例:对象 contains

假设 element1 返回:

{
  "key1": "Linux",
  "key2": "Windows"
}

以下示例返回 true

"[contains(steps('demoStep').element1, 'key1')]"

empty

如果字符串、数组或对象为 null 或为空,则返回 true

示例:字符串 empty

以下示例返回 true

"[empty('')]"

示例:数组 empty

假设 element1 返回 [1, 2, 3]。 以下示例返回 false

"[empty(steps('demoStep').element1)]"

示例:对象 empty

假设 element1 返回:

{
  "key1": "Linux",
  "key2": "Windows"
}

以下示例返回 false

"[empty(steps('demoStep').element1)]"

示例:null 和未定义

假设 element1null 或未定义。 以下示例返回 true

"[empty(steps('demoStep').element1)]"

filter

在应用作为 lambda 函数提供的筛选逻辑后返回新数组。 第一个参数是要用于筛选的数组。 第二个参数是指定筛选逻辑的 lambda 函数。

下面的示例返回数组 [ { "name": "abc" } ]

"[filter(parse('[{\"name\":\"abc\"},{\"name\":\"xyz\"}]'), (item) => contains(item.name, 'abc'))]"

first

返回指定字符串的第一个字符、指定数组的第一个值,或指定对象的第一个键和值。

示例:字符串 first

以下示例返回 "c"

"[first('contoso')]"

示例:数组 first

假设 element1 返回 [1, 2, 3]。 以下示例返回 1

"[first(steps('demoStep').element1)]"

示例:对象 first

假设 element1 返回:

{
  "key1": "Linux",
  "key2": "Windows"
}

以下示例返回 {"key1": "Linux"}

"[first(steps('demoStep').element1)]"

last

返回指定字符串的最后一个字符、指定数组的最后一个值,或指定对象的最后一个键和值。

示例:字符串 last

以下示例返回 "o"

"[last('contoso')]"

示例:数组 last

假设 element1 返回 [1, 2, 3]。 以下示例返回 3

"[last(steps('demoStep').element1)]"

示例:对象 last

假设 element1 返回:

{
  "key1": "Linux",
  "key2": "Windows"
}

以下示例返回 {"key2": "Windows"}

"[last(steps('demoStep').element1)]"

length

返回字符串中的字符数、数组中的值数,或对象中的键数。

示例:字符串 length

以下示例返回 7

"[length('Contoso')]"

示例:数组 length

假设 element1 返回 [1, 2, 3]。 以下示例返回 3

"[length(steps('demoStep').element1)]"

示例:对象 length

假设 element1 返回:

{
  "key1": "Linux",
  "key2": "Windows"
}

以下示例返回 2

"[length(steps('demoStep').element1)]"

map

在对提供的数组调用 lambda 函数后返回新数组。 第一个参数是要用于 lambda 函数的数组。 第二个参数是 lambda 函数。

下面的示例返回一个新数组,其中的每个值都加倍。 结果为 [2, 4, 6]

"[map(parse('[1, 2, 3]'), (item) => mul(2, item))]"

下面的示例返回新数组 ["abc", "xyz"]

"[map(parse('[{\"name\":\"abc\"},{\"name\":\"xyz\"}]'), (item) => item.name)]"

skip

跳过集合中指定数量的元素,返回其余元素。

示例:字符串 skip

以下示例返回 "app"

"[skip('webapp', 3)]"

示例:数组 skip

假设 element1 返回 [1, 2, 3]。 以下示例返回 [3]

"[skip(steps('demoStep').element1, 2)]"

示例:对象 skip

假设 element1 返回:

{
  "key1": "Linux",
  "key2": "Windows"
}

以下示例返回 {"key2": "Windows"}

"[skip(steps('demoStep').element1, 1)]"

split

返回一个字符串数组,其中包含输入的子字符串(由分隔符分隔)。

下面的示例返回数组 [ "555", "867", "5309" ]

"[split('555-867-5309', '-')]"

take

返回字符串起始处指定数量的连续字符、数组起始处指定数量的连续值,以及对象起始处的指定数量的连续键和值。

示例:字符串 take

以下示例返回 "web"

"[take('webapp', 3)]"

示例:数组 take

假设 element1 返回 [1, 2, 3]。 以下示例返回 [1, 2]

"[take(steps('demoStep').element1, 2)]"

示例:对象 take

假设 element1 返回:

{
  "key1": "Linux",
  "key2": "Windows"
}

以下示例返回 {"key1": "Linux"}

"[take(steps('demoStep').element1, 1)]"

后续步骤