Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan fungsi Bicep untuk mengerjakan objek.
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 |
|---|---|---|---|
| container | 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 contains 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 | Tipe | 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 string kosong atau null.
Namespace: sys.
Parameter
| Parameter | Wajib | Tipe | Deskripsi |
|---|---|---|---|
| itemToTest | Ya | array, objek, atau string | Nilai untuk memeriksa apakah kosong atau null. |
Nilai hasil
Mengembalikan True jika nilai kosong atau null; jika tidak, False.
Contoh
Contoh berikut memeriksa apakah array, objek, dan string kosong atau null.
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)
Output dari contoh sebelumnya dengan nilai default adalah:
| Nama | Tipe | Nilai |
|---|---|---|
| arrayEmpty | Bool | Benar |
| objectEmpty | Bool | Benar |
| stringEmpty | Bool | Benar |
| stringNull | Bool | Benar |
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. |
| argumen tambahan | No | array atau objek | Lebih banyak nilai yang digunakan untuk menemukan elemen umum. |
Nilai hasil
Array atau objek dengan elemen umum.
Contoh
Contoh berikut menunjukkan cara menggunakan intersection 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 | Tipe | Nilai |
|---|---|---|
| objectOutput | Objek | {"one": "a", "three": "c"} |
| arrayOutput | Array | ["two", "three"] |
item
items(object)
Mengonversi objek kamus ke array. Lihat toObject tentang mengonversi array menjadi objek.
Namespace: sys.
Parameter
| Parameter | Wajib | Tipe | Deskripsi |
|---|---|---|---|
| objek | Ya | objek | Objek kamus yang akan dikonversi ke array. |
Nilai hasil
Array objek untuk kamus yang dikonversi. Setiap objek dalam array memiliki properti key yang berisi nilai kunci untuk kamus. Setiap objek juga memiliki properti value yang berisi properti untuk objek.
Contoh
Contoh berikut mengonversi objek kamus ke array. Untuk setiap objek dalam array, objek baru dibuat dengan nilai modifikasi.
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
Contoh sebelumnya menampilkan:
"modifiedResult": {
"type": "Array",
"value": [
{
"fullName": "Example item 1",
"itemEnabled": true,
"key": "item001"
},
{
"fullName": "Example item 2",
"itemEnabled": false,
"key": "item002"
}
]
}
Contoh berikut menunjukkan array yang ditampilkan dari fungsi item.
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
Contoh ini menampilkan:
"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
}
}
]
}
Di JSON, objek adalah kumpulan yang tidak diurutkan dari nol atau lebih pasangan kunci atau nilai. Pemesanan mungkin berbeda tergantung pada implementasinya. Misalnya, fungsi item Bicep () mengurutkan objek dalam urutan alfabet. Di tempat lain, Anda dapat mempertahankan pemesanan asli. Karena nondeterminisme ini, hindari membuat asumsi tentang pengurutan kunci objek saat Anda menulis kode, yang berinteraksi dengan parameter dan output penyebaran.
json
json(arg1)
Mengonversi string JSON yang valid menjadi jenis data JSON.
Namespace: sys.
Parameter
| Parameter | Wajib | Tipe | Deskripsi |
|---|---|---|---|
| arg1 | Ya | string | Nilai untuk dikonversi menjadi JSON. Untai (karakter) harus merupakan untai (karakter) JSON yang diformat dengan benar. |
Nilai hasil
Jenis data JSON dari string yang ditentukan, atau nilai kosong saat null ditentukan.
Keterangan
Jika Anda perlu menyertakan nilai parameter atau variabel dalam objek JSON, gunakan fungsi concat untuk membuat untai (karakter) yang Anda berikan ke fungsi.
Contoh
Contoh berikut menunjukkan cara menggunakan fungsi json. Perhatikan bahwa Anda dapat meneruskan null untuk objek kosong.
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, '"}'))
Output dari contoh sebelumnya dengan nilai default adalah:
| Nama | Tipe | Nilai |
|---|---|---|
| emptyObjectOutput | Boolean | Benar |
| objectOutput | Objek | {"a": "b"} |
| stringOutput | String | pengujian |
| booleanOutput | Boolean | Benar |
| intOutput | Bilangan bulat | 3 |
| arrayOutput | Array | [1, 2, 3] |
| concatObjectOutput | Objek | { "a": "nilai demo" } |
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 menunjukkan cara menggunakan length 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 | Tipe | Nilai |
|---|---|---|
| arrayLength | Int | 3 |
| stringLength | Int | 13 |
| objectLength | Int | 4 |
objectKeys
objectKeys(object)
Mengembalikan kunci dari objek, di mana objek adalah kumpulan pasangan kunci-nilai.
Namespace: sys.
Parameter
| Parameter | Wajib | Tipe | Deskripsi |
|---|---|---|---|
| objek | Ya | objek | Objek , yang merupakan kumpulan pasangan kunci-nilai. |
Nilai hasil
Array.
Contoh
Contoh berikut menunjukkan cara menggunakan objectKeys dengan objek:
var obj = { a: 1, b: 2 }
output keyArray array = objectKeys(obj)
Output dari contoh sebelumnya adalah:
| Nama | Tipe | Nilai |
|---|---|---|
| keyArray | Array | [ "a", "b" ] |
keyArray mengembalikan daftar kunci objek input.
Di JSON, objek adalah kumpulan yang tidak diurutkan dari nol atau lebih pasangan kunci atau nilai. Pemesanan mungkin berbeda tergantung pada implementasinya. Misalnya, fungsi item Bicep () mengurutkan objek dalam urutan alfabet. Di tempat lain, Anda dapat mempertahankan pemesanan asli. Karena nondeterminisme ini, hindari membuat asumsi tentang pengurutan kunci objek saat Anda menulis kode, yang berinteraksi dengan parameter dan output penyebaran.
shallowMerge
shallowMerge(inputArray)
Menggabungkan array objek, di mana hanya objek tingkat atas yang digabungkan. Ini berarti bahwa jika objek yang digabungkan berisi objek berlapis, objek berlapis tersebut tidak digabungkan secara mendalam. Sebagai gantinya, properti yang sesuai dari objek penggabungan sepenuhnya menggantikannya.
Namespace: sys.
Parameter
| Parameter | Wajib | Tipe | Deskripsi |
|---|---|---|---|
| inputArray | Ya | array | Array objek. |
Nilai hasil
Sebuah objek.
Contoh
Contoh berikut menunjukkan cara menggunakan 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)
Output dari contoh sebelumnya dengan nilai default adalah:
| Nama | Tipe | Nilai |
|---|---|---|
| firstOutput | objek | {"one":"a","two":"c"} |
| secondOutput | objek | {"one":"a","nested":{"b":2},"two":"b"} |
firstOutput menunjukkan properti dari objek penggabungan digabungkan ke dalam objek baru. Jika ada properti yang bertentangan (yaitu, properti dengan nama yang sama), properti dari objek terakhir yang digabungkan biasanya diutamakan.
secondOutput menunjukkan penggabungan dangkal tidak menggabungkan objek berlapis ini secara rekursif. Sebagai gantinya, properti yang sesuai dari objek penggabungan menggantikan seluruh objek berlapis.
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. |
| argumen tambahan | 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, ia mengulangi proses untuk parameter kedua dan parameter lainnya. Jika nilai sudah ada, 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 | Tipe | 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 | Tipe | 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 deskripsi bagian-bagian dalam file Bicep, lihat Memahami struktur dan sintaks file Bicep.