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.