CreateUiDefinition 集合函數
這些函式可以搭配集合使用,例如 JSON 字串、陣列和物件。
contains
如果字串包含指定的子字串、陣列包含指定的值,或是物件包含指定的索引鍵,則傳回 true
。
範例:string contains
下列範例會傳回 true
:
"[contains('webapp', 'web')]"
範例:array contains
假設 element1
傳回 [1, 2, 3]
。 下列範例會傳回 false
:
"[contains(steps('demoStep').element1, 4)]"
範例:object contains
假設 element1
傳回:
{
"key1": "Linux",
"key2": "Windows"
}
下列範例會傳回 true
:
"[contains(steps('demoStep').element1, 'key1')]"
empty
如果字串、陣列或物件為 null 或空白,則傳回 true
。
範例:string empty
下列範例會傳回 true
:
"[empty('')]"
範例:array empty
假設 element1
傳回 [1, 2, 3]
。 下列範例會傳回 false
:
"[empty(steps('demoStep').element1)]"
範例:object empty
假設 element1
傳回:
{
"key1": "Linux",
"key2": "Windows"
}
下列範例會傳回 false
:
"[empty(steps('demoStep').element1)]"
範例:null 和未定義
假設 element1
為 null
或未定義。 下列範例會傳回 true
:
"[empty(steps('demoStep').element1)]"
篩選器
套用以 Lambda 函數提供的篩選邏輯後,傳回新的陣列。 第一個參數是要用於篩選的陣列。 第二個參數是指定篩選邏輯的 Lambda 函數。
下列範例會傳回陣列 [ { "name": "abc" } ]
。
"[filter(parse('[{\"name\":\"abc\"},{\"name\":\"xyz\"}]'), (item) => contains(item.name, 'abc'))]"
第一
傳回指定字串的第一個字元、指定陣列的第一個值,或指定物件的第一個索引鍵和值。
範例:string first
下列範例會傳回 "c"
:
"[first('contoso')]"
範例:array first
假設 element1
傳回 [1, 2, 3]
。 下列範例會傳回 1
:
"[first(steps('demoStep').element1)]"
範例:object first
假設 element1
傳回:
{
"key1": "Linux",
"key2": "Windows"
}
下列範例會傳回 {"key1": "Linux"}
:
"[first(steps('demoStep').element1)]"
最後一
傳回指定字串的最後一個字元、指定陣列的最後一個值,或指定物件的最後一個索引鍵和值。
範例:string last
下列範例會傳回 "o"
:
"[last('contoso')]"
範例:array last
假設 element1
傳回 [1, 2, 3]
。 下列範例會傳回 3
:
"[last(steps('demoStep').element1)]"
範例:object last
假設 element1
傳回:
{
"key1": "Linux",
"key2": "Windows"
}
下列範例會傳回 {"key2": "Windows"}
:
"[last(steps('demoStep').element1)]"
length
傳回字串中的字元數目、陣列中的值數目或物件中的索引鍵數目。
範例:string length
下列範例會傳回 7
:
"[length('Contoso')]"
範例:array length
假設 element1
傳回 [1, 2, 3]
。 下列範例會傳回 3
:
"[length(steps('demoStep').element1)]"
範例:object 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
略過集合中指定數目的元素,然後傳回其餘的元素。
範例:string skip
下列範例會傳回 "app"
:
"[skip('webapp', 3)]"
範例:array skip
假設 element1
傳回 [1, 2, 3]
。 下列範例會傳回 [3]
:
"[skip(steps('demoStep').element1, 2)]"
範例:object skip
假設 element1
傳回:
{
"key1": "Linux",
"key2": "Windows"
}
下列範例會傳回 {"key2": "Windows"}
:
"[skip(steps('demoStep').element1, 1)]"
split
傳回字串陣列,其中包含以分隔符號分隔的輸入子字串。
下列範例會傳回陣列 [ "555", "867", "5309" ]
。
"[split('555-867-5309', '-')]"
take
傳回從字串開頭指定數目的連續字元、從陣列開頭指定數目的連續值,或從物件開頭指定數目的連續索引鍵和值。
範例:string take
下列範例會傳回 "web"
:
"[take('webapp', 3)]"
範例:array take
假設 element1
傳回 [1, 2, 3]
。 下列範例會傳回 [1, 2]
:
"[take(steps('demoStep').element1, 2)]"
範例:object take
假設 element1
傳回:
{
"key1": "Linux",
"key2": "Windows"
}
下列範例會傳回 {"key1": "Linux"}
:
"[take(steps('demoStep').element1, 1)]"
下一步
- 如需 Azure Resource Manager 的簡介,請參閱 Azure Resource Manager 概觀。