Bicep için nesne işlevleri
Bu makalede nesnelerle çalışmaya yönelik Bicep işlevleri açıklanmaktadır.
içerir
contains(container, itemToFind)
Dizinin bir değer, nesnenin anahtar mı yoksa dizenin alt dize mi içerdiğini denetler. Dize karşılaştırması büyük/küçük harfe duyarlıdır. Ancak, bir nesnenin anahtar içerip içermediğini test ederken karşılaştırma büyük/küçük harfe duyarlı değildir.
Ad alanı: sys.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
kapsayıcı | Yes | dizi, nesne veya dize | Bulunabilecek değeri içeren değer. |
itemToFind | Yes | dize veya int | Bulunacak değer. |
Dönüş değeri
Öğe bulunursa True , değilse False.
Örnek
Aşağıdaki örnekte farklı türlerle nasıl kullanılacağı contains
gösterilmektedir:
param stringToTest string = 'OneTwoThree'
param objectToTest object = {
one: 'a'
two: 'b'
three: 'c'
}
param arrayToTest array = [
'one'
'two'
'three'
]
output stringTrue bool = contains(stringToTest, 'e')
output stringFalse bool = contains(stringToTest, 'z')
output objectTrue bool = contains(objectToTest, 'one')
output objectFalse bool = contains(objectToTest, 'a')
output arrayTrue bool = contains(arrayToTest, 'three')
output arrayFalse bool = contains(arrayToTest, 'four')
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
stringTrue | Boole | True |
stringFalse | Boole | False |
objectTrue | Boole | True |
objectFalse | Boole | False |
arrayTrue | Boole | True |
arrayFalse | Boole | False |
empty
empty(itemToTest)
Dizi, nesne veya dizenin boş mu yoksa null mı olduğunu belirler.
Ad alanı: sys.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
itemToTest | Yes | dizi, nesne veya dize | Boş veya null olup olmadığını denetlemek için gereken değer. |
Dönüş değeri
Değer boş veya null ise True, değilse False döndürür.
Örnek
Aşağıdaki örnek bir dizi, nesne ve dizenin boş mu yoksa null mı olduğunu denetler.
param testArray array = []
param testObject object = {}
param testString string = ''
param testNullString string?
output arrayEmpty bool = empty(testArray)
output objectEmpty bool = empty(testObject)
output stringEmpty bool = empty(testString)
output stringNull bool = empty(testNullString)
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
arrayEmpty | Boole | True |
objectEmpty | Boole | True |
stringEmpty | Boole | True |
stringNull | Boole | True |
kesişme
intersection(arg1, arg2, arg3, ...)
Parametrelerden ortak öğeler içeren tek bir dizi veya nesne döndürür.
Ad alanı: sys.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | dizi veya nesne | Ortak öğeleri bulmak için kullanılacak ilk değer. |
arg2 | Yes | dizi veya nesne | Ortak öğeleri bulmak için kullanılacak ikinci değer. |
ek bağımsız değişkenler | Hayır | dizi veya nesne | Ortak öğeleri bulmak için kullanılacak daha fazla değer. |
Dönüş değeri
Ortak öğeleri olan bir dizi veya nesne.
Örnek
Aşağıdaki örnekte diziler ve nesnelerle nasıl kullanılacağı intersection
gösterilmektedir:
param firstObject object = {
one: 'a'
two: 'b'
three: 'c'
}
param secondObject object = {
one: 'a'
two: 'z'
three: 'c'
}
param firstArray array = [
'one'
'two'
'three'
]
param secondArray array = [
'two'
'three'
]
output objectOutput object = intersection(firstObject, secondObject)
output arrayOutput array = intersection(firstArray, secondArray)
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
objectOutput | Object | {"one": "a", "three": "c"} |
arrayOutput | Dizi | ["iki", "üç"] |
öğe
items(object)
Sözlük nesnesini diziye dönüştürür. Bir diziyi nesneye dönüştürme hakkında toObject bölümüne bakın.
Ad alanı: sys.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
nesne | Yes | nesne | Diziye dönüştürülecek sözlük nesnesi. |
Dönüş değeri
Dönüştürülen sözlük için bir nesne dizisi. Dizideki her nesne, sözlüğün anahtar değerini içeren bir key
özelliğe sahiptir. Her nesnenin, nesnenin özelliklerini içeren bir value
özelliği de vardır.
Örnek
Aşağıdaki örnek bir sözlük nesnesini diziye dönüştürür. Dizideki her nesne için değiştirilmiş değerlerle yeni bir nesne oluşturur.
var entities = {
item002: {
enabled: false
displayName: 'Example item 2'
number: 200
}
item001: {
enabled: true
displayName: 'Example item 1'
number: 300
}
}
var modifiedListOfEntities = [for entity in items(entities): {
key: entity.key
fullName: entity.value.displayName
itemEnabled: entity.value.enabled
}]
output modifiedResult array = modifiedListOfEntities
Yukarıdaki örnek şunu döndürür:
"modifiedResult": {
"type": "Array",
"value": [
{
"fullName": "Example item 1",
"itemEnabled": true,
"key": "item001"
},
{
"fullName": "Example item 2",
"itemEnabled": false,
"key": "item002"
}
]
}
Aşağıdaki örnekte items işlevinden döndürülen dizi gösterilmektedir.
var entities = {
item002: {
enabled: false
displayName: 'Example item 2'
number: 200
}
item001: {
enabled: true
displayName: 'Example item 1'
number: 300
}
}
var entitiesArray = items(entities)
output itemsResult array = entitiesArray
Örnek şunu döndürür:
"itemsResult": {
"type": "Array",
"value": [
{
"key": "item001",
"value": {
"displayName": "Example item 1",
"enabled": true,
"number": 300
}
},
{
"key": "item002",
"value": {
"displayName": "Example item 2",
"enabled": false,
"number": 200
}
}
]
}
JSON'da nesne, sıfır veya daha fazla anahtar/değer çifti içeren sıralanmamış bir koleksiyondur. Sıralama, uygulamalara bağlı olarak farklı olabilir. Örneğin, Bicep items() işlevi nesneleri alfabetik düzende sıralar. Diğer yerlerde özgün sıralama korunabilir. Bu determinizm olmadığından, dağıtım parametreleri ve çıkışlarıyla etkileşim kuran kod yazarken nesne anahtarlarının sıralanmasıyla ilgili varsayımlarda bulunmaktan kaçının.
json
json(arg1)
Geçerli bir JSON dizesini JSON veri türüne dönüştürür.
Ad alanı: sys.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | Dize | JSON'a dönüştürülecek değer. Dize düzgün biçimlendirilmiş bir JSON dizesi olmalıdır. |
Dönüş değeri
Belirtilen dizedeki JSON veri türü veya null belirtildiğinde boş bir değer.
Açıklamalar
JSON nesnesine parametre değeri veya değişken eklemeniz gerekiyorsa, işleve geçirdiğiniz dizeyi oluşturmak için concat işlevini kullanın.
Örnek
Aşağıdaki örnekte işlevin nasıl kullanılacağı gösterilmektedir json
. Boş bir nesne için null değerini geçirebileceğinize dikkat edin.
param jsonEmptyObject string = 'null'
param jsonObject string = '{\'a\': \'b\'}'
param jsonString string = '\'test\''
param jsonBoolean string = 'true'
param jsonInt string = '3'
param jsonArray string = '[[1,2,3]]'
param concatValue string = 'demo value'
output emptyObjectOutput bool = empty(json(jsonEmptyObject))
output objectOutput object = json(jsonObject)
output stringOutput string =json(jsonString)
output booleanOutput bool = json(jsonBoolean)
output intOutput int = json(jsonInt)
output arrayOutput array = json(jsonArray)
output concatObjectOutput object = json(concat('{"a": "', concatValue, '"}'))
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
emptyObjectOutput | Boolean | True |
objectOutput | Object | {"a": "b"} |
stringOutput | String | test |
booleanOutput | Boolean | True |
intOutput | Tamsayı | 3 |
arrayOutput | Dizi | [ 1, 2, 3 ] |
concatObjectOutput | Object | { "a": "demo value" } |
uzunluk
length(arg1)
Bir dizideki öğe sayısını, dizedeki karakterleri veya nesnedeki kök düzeyi özellikleri döndürür.
Ad alanı: sys.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | dizi, dize veya nesne | Öğe sayısını almak için kullanılacak dizi, karakter sayısını almak için kullanılacak dize veya kök düzeyi özelliklerin sayısını almak için kullanılacak nesne. |
Dönüş değeri
Bir int.
Örnek
Aşağıdaki örnekte bir dizi ve dize ile nasıl kullanılacağı length
gösterilmektedir:
param arrayToTest array = [
'one'
'two'
'three'
]
param stringToTest string = 'One Two Three'
param objectToTest object = {
propA: 'one'
propB: 'two'
propC: 'three'
propD: {
'propD-1': 'sub'
'propD-2': 'sub'
}
}
output arrayLength int = length(arrayToTest)
output stringLength int = length(stringToTest)
output objectLength int = length(objectToTest)
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
arrayLength | Int | 3 |
stringLength | Int | 13 |
objectLength | Int | 4 |
objectKeys
objectKeys(object)
Nesnenin anahtar-değer çiftleri koleksiyonu olduğu bir nesneden anahtarları döndürür.
Ad alanı: sys.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
nesne | Yes | nesne | Anahtar-değer çiftleri koleksiyonu olan nesnesi. |
Dönüş değeri
Bir dizi.
Örnek
Aşağıdaki örnekte bir nesneyle nasıl kullanılacağı objectKeys
gösterilmektedir:
var obj = { a: 1, b: 2 }
output keyArray array = objectKeys(obj)
Yukarıdaki örnekten alınan çıkış:
Adı | Tür | Değer |
---|---|---|
keyArray | Dizi | [ "a", "b" ] |
keyArray , giriş nesnesinin anahtarlarının listesini döndürür.
JSON'da nesne, sıfır veya daha fazla anahtar/değer çifti içeren sıralanmamış bir koleksiyondur. Sıralama, uygulamalara bağlı olarak farklı olabilir. Örneğin, Bicep items() işlevi nesneleri alfabetik düzende sıralar. Diğer yerlerde özgün sıralama korunabilir. Bu determinizm olmadığından, dağıtım parametreleri ve çıkışlarıyla etkileşim kuran kod yazarken nesne anahtarlarının sıralanmasıyla ilgili varsayımlarda bulunmaktan kaçının.
shallowMerge
shallowMerge(inputArray)
Yalnızca en üst düzey nesnelerin birleştirildiği bir nesne dizisini birleştirir. Başka bir deyişle, birleştirilen nesneler iç içe nesneler içeriyorsa, bu iç içe nesne derin bir şekilde birleştirilmez. Bunun yerine, bunlar tamamen birleştirilmiş nesneden karşılık gelen özellik tarafından değiştirilir.
Ad alanı: sys.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
inputArray | Yes | dizi | Bir nesne dizisi. |
Dönüş değeri
Bir nesnesi.
Örnek
Aşağıdaki örnekte nasıl kullanılacağı gösterilmektedir shallowMerge
:
var firstArray = [{ one: 'a' }, { two: 'b' }, { two: 'c'}]
var secondArray = [{ one: 'a', nested: {a: 1, nested: {c: 3}} }, { two: 'b', nested: {b: 2}}]
output firstOutput object = shallowMerge(firstArray)
output secondOutput object = shallowMerge(secondArray)
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
firstOutput | nesne | {"one":"a","two":"c"} |
secondOutput | nesne | {"one":"a","nested":{"b":2},"two":"b"} |
firstOutput , birleştirilen nesnelerin yeni bir nesnede birleştirildiği özellikleri gösterir. Çakışan özellikler (yani aynı ada sahip özellikler) varsa, birleştirilen son nesnenin özelliği genellikle önceliklidir.
secondOutput , sığ birleştirmenin bu iç içe nesneleri yinelemeli olarak birleştirmediği gösterir. Bunun yerine, iç içe nesnenin tamamı birleştirme nesnesinden karşılık gelen özellik ile değiştirilir.
birleşim
union(arg1, arg2, arg3, ...)
Parametrelerdeki tüm öğeleri içeren tek bir dizi veya nesne döndürür. Diziler için, yinelenen değerler bir kez eklenir. Nesneler için yinelenen özellik adları yalnızca bir kez eklenir.
Ad alanı: sys.
Parametreler
Parametre | Zorunlu | Türü | Açıklama |
---|---|---|---|
arg1 | Yes | dizi veya nesne | Öğeleri birleştirmek için kullanılacak ilk değer. |
arg2 | Yes | dizi veya nesne | Öğeleri birleştirmek için kullanılacak ikinci değer. |
ek bağımsız değişkenler | Hayır | dizi veya nesne | Öğeleri birleştirmek için kullanılacak diğer değerler. |
Dönüş değeri
Dizi veya nesne.
Açıklamalar
union işlevi, sonucun sırasını ve değerlerini belirlemek için parametrelerin sırasını kullanır.
Diziler için işlev, ilk parametredeki her öğede yinelenir ve henüz mevcut değilse sonucuna ekler. Ardından, ikinci parametre ve diğer parametreler için işlemi yineler. Bir değer zaten varsa, dizideki daha önceki yerleştirme korunur.
Nesneler için, ilk parametredeki özellik adları ve değerler sonuda eklenir. Daha sonraki parametreler için, sonuda yeni adlar eklenir. Sonraki bir parametre aynı ada sahip bir özelliğe sahipse, bu değer var olan değerin üzerine yazar. Özelliklerin sırası garanti değildir.
Union işlevi yalnızca üst düzey öğeleri birleştirmekle kalmaz, aynı zamanda iç içe yerleştirilmiş nesneleri yinelemeli olarak birleştirir. İç içe dizi değerleri birleştirilmeyen. Aşağıdaki bölümdeki ikinci örne bakın.
Örnek
Aşağıdaki örnekte diziler ve nesnelerle nasıl kullanılacağı union
gösterilmektedir:
param firstObject object = {
one: 'a'
two: 'b'
three: 'c1'
}
param secondObject object = {
three: 'c2'
four: 'd'
five: 'e'
}
param firstArray array = [
'one'
'two'
'three'
]
param secondArray array = [
'three'
'four'
'two'
]
output objectOutput object = union(firstObject, secondObject)
output arrayOutput array = union(firstArray, secondArray)
Yukarıdaki örnekten varsayılan değerleri içeren çıkış:
Adı | Tür | Değer |
---|---|---|
objectOutput | Object | {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"} |
arrayOutput | Dizi | ["bir", "iki", "üç", "dört"] |
Aşağıdaki örnekte derin birleştirme özelliği gösterilmektedir:
var firstObject = {
property: {
one: 'a'
two: 'b'
three: 'c1'
}
nestedArray: [
1
2
]
}
var secondObject = {
property: {
three: 'c2'
four: 'd'
five: 'e'
}
nestedArray: [
3
4
]
}
var firstArray = [
[
'one'
'two'
]
[
'three'
]
]
var secondArray = [
[
'three'
]
[
'four'
'two'
]
]
output objectOutput object = union(firstObject, secondObject)
output arrayOutput array = union(firstArray, secondArray)
Yukarıdaki örnekten alınan çıkış:
Adı | Tür | Değer |
---|---|---|
objectOutput | Object | {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]} |
arrayOutput | Dizi | [["bir","iki"],["üç"],["dört","iki"]] |
İç içe diziler birleştirildiyse objectOutput.nestedArray değeri [1, 2, 3, 4] ve arrayOutput değeri [["one", "iki", "üç"], ["üç", "dört", "iki"]] olur.
Sonraki adımlar
- Bicep dosyasındaki bölümlerin açıklaması için bkz . Bicep dosyalarının yapısını ve söz dizimini anlama.