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 Diperlukan Jenis Deskripsi
convertToArray Ya int, string, array, atau objek Nilai untuk dikonversi menjadi array.

Nilai kembali

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.

Namespace: sys.

Parameter

Parameter Diperlukan Jenis Deskripsi
arg1 Ya array Array pertama untuk perangkaian.
lebih banyak argumen Tidak array Array tambahan dalam urutan yang berurutan untuk perangkaian.

Fungsi ini mengambil sejumlah array dan menggabungkannya.

Mengembalikan nilai

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"]

contains

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 Diperlukan Jenis Deskripsi
kontainer Ya array, objek, atau string Nilai yang berisi nilai untuk ditemukan.
itemToFind Ya string atau int Nilai untuk ditemukan.

Menampilkan nilai

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 True
stringFalse Bool FALSE
objectTrue Bool True
objectFalse Bool FALSE
arrayTrue Bool True
arrayFalse Bool FALSE

kosong

empty(itemToTest)

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

Namespace: sys.

Parameter

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

Mengembalikan nilai

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 True
objectEmpty Bool True
stringEmpty Bool True

Contoh mulai cepat

Contoh berikut diekstrak dari templat mulai cepat, SQL Server VM dengan pengaturan penyimpanan yang dioptimalkan performa :

@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 Diperlukan Jenis Deskripsi
arg1 Ya array atau string Nilai untuk mengambil elemen atau karakter pertama.

Nilai kembali

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 Diperlukan Jenis Deskripsi
arrayToFlattern Ya array Array subarray untuk meratakan.

Mengembalikan nilai

Array

Contoh

Contoh berikut menunjukkan cara menggunakan fungsi flatten.

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 Diperlukan Jenis 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.

Mengembalikan nilai

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 Diperlukan Jenis 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 Tidak array atau objek Lebih banyak nilai yang digunakan untuk menemukan elemen umum.

Nilai kembali

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 Diperlukan Jenis Deskripsi
arg1 Ya array atau string Nilai untuk mengambil elemen atau karakter terakhir.

Nilai kembali

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 Diperlukan Jenis 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.

Mengembalikan nilai

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

panjang

length(arg1)

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

Namespace: sys.

Parameter

Parameter Diperlukan Jenis 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.

Menampilkan nilai

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 Diperlukan Jenis Deskripsi
arg1 Ya array bilangan bulat, atau daftar bilangan bulat yang dipisahkan koma Kumpulan untuk mendapatkan nilai maksimum.

Nilai kembali

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

mnt

min(arg1)

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

Namespace: sys.

Parameter

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

Nilai kembali

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 Diperlukan Jenis Deskripsi
startIndex Ya int Bilangan bulat pertama dalam array. Jumlah startIndex dan hitungan harus tidak lebih besar dari 2147483647.
hitung Ya int Jumlah bilangan bulat dalam array. Harus bilangan bulat non-negatif hingga 10000.

Nilai kembali

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:

lompati

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 Diperlukan Jenis 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.

Mengembalikan nilai

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

ambil

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 Diperlukan Jenis 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.

Mengembalikan nilai

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

union

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

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

Namespace: sys.

Parameter

Parameter Diperlukan Jenis 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 Tidak array atau objek Lebih banyak nilai yang digunakan untuk menggabungkan elemen.

Nilai kembali

Array atau objek.

Keterangan

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

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

Untuk objek, nama properti dan nilai 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 itu menimpa nilai yang sudah ada. Urutan properti tidak dijamin.

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"]

Langkah berikutnya

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