Fungsi array untuk Bicep

Artikel ini menjelaskan fungsi Bicep untuk bekerja dengan array. Fungsi lambda untuk bekerja dengan array dapat ditemukan di sini.

array

array(convertToArray)

Mengonversi nilai menjadi array.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
convertToArray Ya int, string, array, atau objek Nilai untuk dikonversi menjadi array.

Nilai hasil

Array.

Contoh

Contoh berikut menunjukkan cara menggunakan fungsi array dengan jenis yang berbeda.

param intToConvert int = 1
param stringToConvert string = 'efgh'
param objectToConvert object = {
  a: 'b'
  c: 'd'
}

output intOutput array = array(intToConvert)
output stringOutput array = array(stringToConvert)
output objectOutput array = array(objectToConvert)

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
intOutput Array [1]
stringOutput Array ["efgh"]
objectOutput Array [{"a": "b", "c": "d"}]

concat

concat(arg1, arg2, arg3, ...)

Menggabungkan beberapa array dan mengembalikan gabungan array. Untuk informasi selengkapnya tentang menggabungkan beberapa string, lihat concat.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
arg1 Ya array Array pertama untuk perangkaian.
lebih banyak argumen No array Array tambahan dalam urutan yang berurutan untuk perangkaian.

Fungsi ini mengambil sejumlah array dan menggabungkannya.

Nilai hasil

Array nilai yang digabungkan.

Contoh

Contoh berikut menunjukkan cara menggabungkan dua array.

param firstArray array = [
  '1-1'
  '1-2'
  '1-3'
]
param secondArray array = [
  '2-1'
  '2-2'
  '2-3'
]

output return array = concat(firstArray, secondArray)

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
return Array ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"]

mengandung

contains(container, itemToFind)

Memeriksa apakah array berisi nilai, objek berisi kunci, atau untai (karakter) berisi sub-untai (karakter). Perbandingan untai (karakter) peka terhadap huruf besar/kecil. Namun, ketika pengujian, jika objek berisi kunci, perbandingannya tidak peka huruf besar/kecil.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
kontainer Ya array, objek, atau string Nilai yang berisi nilai untuk ditemukan.
itemToFind Ya string atau int Nilai untuk ditemukan.

Nilai hasil

Benar jika item ditemukan; jika tidak, Salah.

Contoh

Contoh berikut menunjukkan cara menggunakan berisi dengan jenis yang berbeda:

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')

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
stringTrue Bool Benar
stringFalse Bool Salah
objectTrue Bool Benar
objectFalse Bool Salah
arrayTrue Bool Benar
arrayFalse Bool Salah

kosong

empty(itemToTest)

Menentukan apakah array, objek, atau untai (karakter) kosong.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
itemToTest Ya array, objek, atau string Nilai untuk memeriksa apakah nilainya kosong.

Nilai hasil

Kembalikan Benar jika nilainya kosong; jika tidak, Salah.

Contoh

Contoh berikut ini memeriksa apakah array, objek, dan string kosong.

param testArray array = []
param testObject object = {}
param testString string = ''

output arrayEmpty bool = empty(testArray)
output objectEmpty bool = empty(testObject)
output stringEmpty bool = empty(testString)

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
arrayEmpty Bool Benar
objectEmpty Bool Benar
stringEmpty Bool Benar

Contoh mulai cepat

Contoh berikut diekstrak dari templat mulai cepat, Virtual Network dengan pengaturan log diagnostik:

@description('Array containing DNS Servers')
param dnsServers array = []

...

resource vnet 'Microsoft.Network/virtualNetworks@2021-02-01' = {
  name: vnetName
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: vnetAddressSpace
    }
    dhcpOptions: empty(dnsServers) ? null : {
      dnsServers: dnsServers
    }
    ...
  }
}

Dalam ekspresi kondisi, fungsi kosong digunakan untuk memeriksa apakah array dnsServers adalah array kosong.

pertama

first(arg1)

Mengembalikan elemen pertama dari array, atau karakter pertama string.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
arg1 Ya array atau string Nilai untuk mengambil elemen atau karakter pertama.

Nilai hasil

Jenis (string, int, array, atau objek) dari elemen pertama dalam array, atau karakter pertama dari string.

Contoh

Contoh berikut menunjukkan cara menggunakan fungsi pertama dengan array dan string.

param arrayToTest array = [
  'one'
  'two'
  'three'
]

output arrayOutput string = first(arrayToTest)
output stringOutput string = first('One Two Three')

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
arrayOutput String satu
stringOutput String O

flatten

flatten(arrayToFlatten)

Mengambil array array, dan mengembalikan array elemen subarray, dalam urutan asli. Subarray hanya diratakan sekali, tidak secara rekursif.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
arrayToFlattern Ya array Array subarray untuk meratakan.

Nilai hasil

Array

Contoh

Contoh berikut menunjukkan cara menggunakan fungsi rata.

param arrayToTest array = [
  ['one', 'two']
  ['three']
  ['four', 'five']
]
output arrayOutput array = flatten(arrayToTest)

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
arrayOutput array ['one', 'two', 'three', 'four', 'five']

indexOf

indexOf(arrayToSearch, itemToFind)

Mengembalikan bilangan bulat untuk indeks kemunculan pertama item dalam array. Perbandingannya adalah peka huruf besar/kecil untuk string.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
arrayToSearch Ya array Array yang digunakan untuk menemukan indeks item yang dicari.
itemToFind Ya int, string, array, atau objek Item yang dicari dalam array.

Nilai hasil

Bilangan bulat yang mewakili indeks pertama item dalam array. Indeks berbasis nol. Jika item tidak ditemukan, -1 dikembalikan.

Contoh

Contoh berikut memperlihatkan cara menggunakan fungsi indexOf dan lastIndexOf:

var names = [
  'one'
  'two'
  'three'
]

var numbers = [
  4
  5
  6
]

var collection = [
  names
  numbers
]

var duplicates = [
  1
  2
  3
  1
]

output index1 int = lastIndexOf(names, 'two')
output index2 int = indexOf(names, 'one')
output notFoundIndex1 int = lastIndexOf(names, 'Three')

output index3 int = lastIndexOf(numbers, 4)
output index4 int = indexOf(numbers, 6)
output notFoundIndex2 int = lastIndexOf(numbers, '5')

output index5 int = indexOf(collection, numbers)

output index6 int = indexOf(duplicates, 1)
output index7 int = lastIndexOf(duplicates, 1)

Output dari contoh sebelumnya adalah:

Nama Jenis Nilai
index1 int 1
index2 int 0
index3 int 0
index4 int 2
index5 int 1
index6 int 0
index7 int 3
notFoundIndex1 int -1
notFoundIndex2 int -1

persimpangan

intersection(arg1, arg2, arg3, ...)

Mengembalikan satu array atau objek dengan elemen umum dari parameter.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
arg1 Ya array atau objek Nilai pertama yang digunakan untuk menemukan elemen umum.
arg2 Ya array atau objek Nilai kedua yang digunakan untuk menemukan elemen umum.
lebih banyak argumen No array atau objek Lebih banyak nilai yang digunakan untuk menemukan elemen umum.

Nilai hasil

Array atau objek dengan elemen umum. Urutan elemen ditentukan oleh parameter array pertama.

Contoh

Contoh berikut menunjukkan cara menggunakan persimpangan dengan array dan objek:

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)

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
objectOutput Objek {"one": "a", "three": "c"}
arrayOutput Array ["two", "three"]

Parameter array pertama menentukan urutan elemen yang berpotongan. Contoh berikut menunjukkan bagaimana urutan elemen yang dikembalikan didasarkan pada manakah array yang pertama.

var array1 = [
  1
  2
  3
  4
]

var array2 = [
  3
  2
  1
]

var array3 = [
  4
  1
  3
  2
]

output commonUp array = intersection(array1, array2, array3)
output commonDown array = intersection(array2, array3, array1)

Output dari contoh sebelumnya adalah:

Nama Jenis Nilai
commonUp array [1, 2, 3]
commonDown array [3, 2, 1]

terakhir

last(arg1)

Mengembalikan elemen terakhir dari array, atau karakter terakhir dari string.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
arg1 Ya array atau string Nilai untuk mengambil elemen atau karakter terakhir.

Nilai hasil

Jenis (string, int, array, atau objek) dari elemen terakhir dalam array, atau karakter terakhir dari string.

Contoh

Contoh berikut menunjukkan cara menggunakan fungsi terakhir dengan array dan string.

param arrayToTest array = [
  'one'
  'two'
  'three'
]

output arrayOutput string = last(arrayToTest)
output stringOutput string = last('One Two three')

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
arrayOutput String tiga
stringOutput String e

lastIndexOf

lastIndexOf(arrayToSearch, itemToFind)

Mengembalikan bilangan bulat untuk indeks kemunculan terakhir item dalam array. Perbandingannya adalah peka huruf besar/kecil untuk string.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
arrayToSearch Ya array Array yang digunakan untuk menemukan indeks item yang dicari.
itemToFind Ya int, string, array, atau objek Item yang dicari dalam array.

Nilai hasil

Bilangan bulat yang mewakili indeks terakhir item dalam array. Indeks berbasis nol. Jika item tidak ditemukan, -1 dikembalikan.

Contoh

Contoh berikut memperlihatkan cara menggunakan fungsi indexOf dan lastIndexOf:

var names = [
  'one'
  'two'
  'three'
]

var numbers = [
  4
  5
  6
]

var collection = [
  names
  numbers
]

var duplicates = [
  1
  2
  3
  1
]

output index1 int = lastIndexOf(names, 'two')
output index2 int = indexOf(names, 'one')
output notFoundIndex1 int = lastIndexOf(names, 'Three')

output index3 int = lastIndexOf(numbers, 4)
output index4 int = indexOf(numbers, 6)
output notFoundIndex2 int = lastIndexOf(numbers, '5')

output index5 int = indexOf(collection, numbers)

output index6 int = indexOf(duplicates, 1)
output index7 int = lastIndexOf(duplicates, 1)

Output dari contoh sebelumnya adalah:

Nama Jenis Nilai
index1 int 1
index2 int 0
index3 int 0
index4 int 2
index5 int 1
index6 int 0
index7 int 3
notFoundIndex1 int -1
notFoundIndex2 int -1

length

length(arg1)

Mengembalikan jumlah elemen dalam array, karakter dalam untai (karakter), atau properti tingkat root dalam objek.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
arg1 Ya array, untai (karakter), atau objek Array yang digunakan untuk mendapatkan jumlah elemen, untai (karakter) yang digunakan untuk mendapatkan jumlah karakter, atau objek yang digunakan untuk mendapatkan jumlah properti tingkat root.

Nilai hasil

Int.

Contoh

Contoh berikut memperlihatkan cara menggunakan panjang dengan array dan string:

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)

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
arrayLength Int 3
stringLength Int 13
objectLength Int 4

Contoh mulai cepat

Contoh berikut diekstrak dari templat mulai cepat, Sebarkan API Management di VNet eksternal dengan IP publik :

@description('Numbers for availability zones, for example, 1,2,3.')
param availabilityZones array = [
  '1'
  '2'
]

resource exampleApim 'Microsoft.ApiManagement/service@2021-08-01' = {
  name: apiManagementName
  location: location
  sku: {
    name: sku
    capacity: skuCount
  }
  zones: ((length(availabilityZones) == 0) ? null : availabilityZones)
  ...
}

Dalam ekspresi kondisional, length fungsi memeriksa panjang array availabilityZones.

Contoh lainnya dapat ditemukan dalam file Bicep mulai cepat ini:

maks

max(arg1)

Mengembalikan nilai maksimum dari array bilangan bulat atau daftar bilangan bulat yang dipisahkan koma.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
arg1 Ya array bilangan bulat, atau daftar bilangan bulat yang dipisahkan koma Kumpulan untuk mendapatkan nilai maksimum.

Nilai hasil

Int yang mewakili nilai maksimum.

Contoh

Contoh berikut menunjukkan cara menggunakan maks dengan array dan daftar bilangan bulat:

param arrayToTest array = [
  0
  3
  2
  5
  4
]

output arrayOutput int = max(arrayToTest)
output intOutput int = max(0,3,2,5,4)

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
arrayOutput Int 5
intOutput Int 5

min

min(arg1)

Mengembalikan nilai minimum dari array bilangan bulat atau daftar bilangan bulat yang dipisahkan koma.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
arg1 Ya array bilangan bulat, atau daftar bilangan bulat yang dipisahkan koma Kumpulan untuk mendapatkan nilai minimum.

Nilai hasil

Int yang mewakili nilai maksimum.

Contoh

Contoh berikut menunjukkan cara menggunakan min dengan array dan daftar bilangan bulat:

param arrayToTest array = [
  0
  3
  2
  5
  4
]

output arrayOutput int = min(arrayToTest)
output intOutput int = min(0,3,2,5,4)

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
arrayOutput Int 0
intOutput Int 0

rentang

range(startIndex, count)

Membuat array bilangan bulat dari bilangan bulat awal dan berisi sejumlah item.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
startIndex Ya int Bilangan bulat pertama dalam array. Jumlah startIndex dan hitungan harus tidak lebih besar dari 2147483647.
jumlah Ya int Jumlah bilangan bulat dalam array. Harus bilangan bulat non-negatif hingga 10000.

Nilai hasil

Array bilangan bulat.

Contoh

Contoh berikut menunjukkan bagaimana menggunakan fungsi rentang:

param startingInt int = 5
param numberOfElements int = 3

output rangeOutput array = range(startingInt, numberOfElements)

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
rangeOutput Array [5, 6, 7]

Contoh mulai cepat

Contoh berikut diekstrak dari templat mulai cepat, Dua VM di VNET - Load Balancer Internal dan aturan LB :

...
var numberOfInstances = 2

resource networkInterface 'Microsoft.Network/networkInterfaces@2021-05-01' = [for i in range(0, numberOfInstances): {
  name: '${networkInterfaceName}${i}'
  location: location
  properties: {
    ...
  }
}]

resource vm 'Microsoft.Compute/virtualMachines@2021-11-01' = [for i in range(0, numberOfInstances): {
  name: '${vmNamePrefix}${i}'
  location: location
  properties: {
    ...
  }
}]

File Bicep membuat dua networkInterface dan dua sumber daya virtualMachine.

Contoh lainnya dapat ditemukan dalam file Bicep mulai cepat ini:

skip

skip(originalValue, numberToSkip)

Mengembalikan array dengan semua elemen setelah nomor yang ditentukan dalam array, atau mengembalikan string dengan semua karakter setelah nomor yang ditentukan dalam string.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
originalValue Ya array atau string Array atau string yang digunakan untuk melompati.
numberToSkip Ya int Jumlah elemen atau karakter yang akan dilompati. Jika nilai ini adalah 0 atau kurang, semua elemen atau karakter dalam nilai dikembalikan. Jika lebih besar dari panjang array atau string, array atau string kosong akan dikembalikan.

Nilai hasil

Array atau string.

Contoh

Contoh berikut melompati jumlah elemen yang ditentukan dalam array, dan jumlah karakter yang ditentukan dalam string.

param testArray array = [
  'one'
  'two'
  'three'
]
param elementsToSkip int = 2
param testString string = 'one two three'
param charactersToSkip int = 4

output arrayOutput array = skip(testArray, elementsToSkip)
output stringOutput string = skip(testString, charactersToSkip)

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
arrayOutput Array ["three"]
stringOutput String dua tiga

take

take(originalValue, numberToTake)

Mengembalikan array dengan jumlah elemen yang ditentukan dari awal array, atau string dengan jumlah karakter yang ditentukan dari awal string.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
originalValue Ya array atau string Array atau string untuk mengambil elemen.
numberToTake Ya int Jumlah elemen atau karakter yang akan diambil. Jika nilai ini adalah 0 atau kurang, array atau string kosong dikembalikan. Jika lebih besar dari panjang array atau string yang diberikan, semua elemen dalam array atau string dikembalikan.

Nilai hasil

Array atau string.

Contoh

Contoh berikut mengambil jumlah elemen yang ditentukan dari array, dan karakter dari string.

param testArray array = [
  'one'
  'two'
  'three'
]
param elementsToTake int = 2
param testString string = 'one two three'
param charactersToTake int = 2

output arrayOutput array = take(testArray, elementsToTake)
output stringOutput string = take(testString, charactersToTake)

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
arrayOutput Array ["one", "two"]
stringOutput String aktif

penyatuan

union(arg1, arg2, arg3, ...)

Mengembalikan satu array atau objek dengan semua elemen dari parameter. Untuk array, nilai duplikat disertakan sekali. Untuk objek, nama properti duplikat hanya disertakan sekali.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
arg1 Ya array atau objek Nilai pertama yang digunakan untuk menggabungkan elemen.
arg2 Ya array atau objek Nilai kedua yang digunakan untuk menggabungkan elemen.
lebih banyak argumen No array atau objek Lebih banyak nilai yang digunakan untuk menggabungkan elemen.

Nilai hasil

Array atau objek.

Keterangan

Fungsi penyatuan menggunakan urutan parameter untuk menentukan urutan dan nilai hasil.

Untuk array, fungsi akan muncul di setiap elemen dalam parameter pertama dan menambahkannya ke hasil jika belum tersedia. Kemudian, fungsi tersebut mengulangi proses untuk parameter kedua serta parameter lainnya. Jika nilai sudah tersedia, penempatan sebelumnya dalam array dipertahankan.

Untuk objek, nilai dan nama properti dari parameter pertama ditambahkan ke hasil. Untuk parameter selanjutnya, setiap nama baru akan ditambahkan ke hasil. Jika parameter berikutnya memiliki properti dengan nama yang sama, nilai tersebut menimpa nilai yang sudah ada. Urutan properti tidak dijamin.

Fungsi gabungan tidak hanya menggabungkan elemen tingkat atas tetapi juga secara rekursif menggabungkan objek berlapis di dalamnya. Nilai array berlapis tidak digabungkan. Lihat contoh kedua di bagian berikut.

Contoh

Contoh berikut menunjukkan cara menggunakan union dengan array dan objek:

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)

Output dari contoh sebelumnya dengan nilai default adalah:

Nama Jenis Nilai
objectOutput Objek {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"}
arrayOutput Array ["one", "two", "three", "four"]

Contoh berikut menunjukkan kemampuan penggabungan mendalam:

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)

Output dari contoh sebelumnya adalah:

Nama Jenis Nilai
objectOutput Objek {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]}
arrayOutput Array [["one","two"],["three"],["four","two"]]

Jika array berlapis digabungkan, maka nilai objectOutput.nestedArray adalah [1, 2, 3, 4], dan nilai arrayOutput adalah [["one", "two", "three"], ["three", "four", "two"]]] .

Langkah berikutnya

  • Untuk mendapatkan array nilai string yang dibatasi oleh nilai, lihat memisahkan.