Funkcje tablicy dla Bicep
W tym artykule opisano funkcje Bicep do pracy z tablicami. Funkcje lambda do pracy z tablicami można znaleźć tutaj.
tablica
array(convertToArray)
Konwertuje wartość na tablicę.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
convertToArray | Tak | int, string, array lub object | Wartość, która ma być konwertowana na tablicę. |
Wartość zwracana
Tablicy.
Przykład
W poniższym przykładzie pokazano, jak używać funkcji tablicy z różnymi typami.
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
intOutput | Tablica | [1] |
stringOutput | Tablica | ["efgh"] |
objectOutput | Tablica | [{"a": "b", "c": "d"}] |
concat
concat(arg1, arg2, arg3, ...)
Łączy wiele tablic i zwraca połączoną tablicę. Aby uzyskać więcej informacji na temat łączenia wielu ciągów, zobacz concat.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | tablica | Pierwsza tablica do łączenia. |
więcej argumentów | Nie. | tablica | Więcej tablic w kolejności sekwencyjnej na potrzeby łączenia. |
Ta funkcja przyjmuje dowolną liczbę tablic i łączy je.
Wartość zwracana
Tablica połączonych wartości.
Przykład
W poniższym przykładzie pokazano, jak połączyć dwie tablice.
param firstArray array = [
'1-1'
'1-2'
'1-3'
]
param secondArray array = [
'2-1'
'2-2'
'2-3'
]
output return array = concat(firstArray, secondArray)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
return | Tablica | ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"] |
zawiera
contains(container, itemToFind)
Sprawdza, czy tablica zawiera wartość, obiekt zawiera klucz, czy ciąg zawiera podciąg. Porównanie ciągów uwzględnia wielkość liter. Jednak podczas testowania, czy obiekt zawiera klucz, porównanie jest bez uwzględniania wielkości liter.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
kontener | Tak | tablica, obiekt lub ciąg | Wartość zawierająca wartość do znalezienia. |
itemToFind | Tak | ciąg lub int | Wartość do znalezienia. |
Wartość zwracana
Wartość True , jeśli element zostanie znaleziony; w przeciwnym razie wartość False.
Przykład
W poniższym przykładzie pokazano, jak używać elementów z różnymi typami:
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')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
stringTrue | Bool | Prawda |
stringFalse | Bool | Fałsz |
objectTrue | Bool | Prawda |
objectFalse | Bool | Fałsz |
arrayTrue | Bool | Prawda |
arrayFalse | Bool | Fałsz |
empty
empty(itemToTest)
Określa, czy tablica, obiekt lub ciąg jest pusta lub ma wartość null.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
itemToTest | Tak | tablica, obiekt lub ciąg | Wartość do sprawdzenia, czy jest pusta, czy ma wartość null. |
Wartość zwracana
Zwraca wartość True , jeśli wartość jest pusta lub ma wartość null; w przeciwnym razie wartość False.
Przykład
Poniższy przykład sprawdza, czy tablica, obiekt i ciąg są puste.
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayEmpty | Bool | Prawda |
objectEmpty | Bool | Prawda |
stringEmpty | Bool | Prawda |
stringNull | Bool | Prawda |
Przykłady z przewodnika Szybki start
Poniższy przykład został wyodrębniony z szablonu szybkiego startu Virtual Network z ustawieniami dzienników diagnostycznych:
@description('Array containing DNS Servers')
param dnsServers array = []
...
resource vnet 'Microsoft.Network/virtualNetworks@2023-11-01' = {
name: vnetName
location: location
properties: {
addressSpace: {
addressPrefixes: vnetAddressSpace
}
dhcpOptions: empty(dnsServers) ? null : {
dnsServers: dnsServers
}
...
}
}
W wyrażeniu warunkowym pusta funkcja służy do sprawdzania, czy tablica dnsServers jest pustą tablicą.
pierwszy
first(arg1)
Zwraca pierwszy element tablicy lub pierwszy znak ciągu.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | tablica lub ciąg | Wartość do pobrania pierwszego elementu lub znaku. |
Wartość zwracana
Typ (ciąg, int, tablica lub obiekt) pierwszego elementu w tablicy lub pierwszy znak ciągu.
Przykład
W poniższym przykładzie pokazano, jak używać pierwszej funkcji z tablicą i ciągiem.
param arrayToTest array = [
'one'
'two'
'three'
]
output arrayOutput string = first(arrayToTest)
output stringOutput string = first('One Two Three')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayOutput | String | jeden |
stringOutput | String | O |
spłaszczyć
flatten(arrayToFlatten)
Pobiera tablicę tablic i zwraca tablicę elementów podarray w oryginalnej kolejności. Podarray są spłaszczone tylko raz, a nie rekursywnie.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arrayToFlattern | Tak | tablica | Tablica podarray do spłaszczenia. |
Wartość zwracana
Tablica
Przykład
W poniższym przykładzie pokazano, jak używać funkcji spłaszczanych.
param arrayToTest array = [
['one', 'two']
['three']
['four', 'five']
]
output arrayOutput array = flatten(arrayToTest)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayOutput | tablica | ['one', 'two', 'three', 'four', 'five'] |
indexOf
indexOf(arrayToSearch, itemToFind)
Zwraca liczbę całkowitą dla indeksu pierwszego wystąpienia elementu w tablicy. Porównanie uwzględnia wielkość liter dla ciągów.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arrayToSearch | Tak | tablica | Tablica do użycia do znajdowania indeksu przeszukanego elementu. |
itemToFind | Tak | int, string, array lub object | Element do znalezienia w tablicy. |
Wartość zwracana
Liczba całkowita reprezentująca pierwszy indeks elementu w tablicy. Jest to indeks zaczynający się od zera. Jeśli element nie zostanie znaleziony, zostanie zwrócony -1.
Przykłady
W poniższym przykładzie pokazano, jak używać funkcji indexOf i 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)
Dane wyjściowe z poprzedniego przykładu to:
Nazwisko | Typ | Wartość |
---|---|---|
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 |
skrzyżowanie
intersection(arg1, arg2, arg3, ...)
Zwraca pojedynczą tablicę lub obiekt ze wspólnymi elementami z parametrów.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | tablica lub obiekt | Pierwsza wartość używana do znajdowania typowych elementów. |
arg2 | Tak | tablica lub obiekt | Druga wartość używana do znajdowania typowych elementów. |
więcej argumentów | Nie. | tablica lub obiekt | Więcej wartości do użycia do znajdowania typowych elementów. |
Wartość zwracana
Tablica lub obiekt ze wspólnymi elementami. Kolejność elementów jest określana przez pierwszy parametr tablicy.
Przykład
W poniższym przykładzie pokazano, jak używać przecięcia z tablicami i obiektami:
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
objectOutput | Objekt | {"one": "a", "trzy": "c"} |
arrayOutput | Tablica | ["dwa", "trzy"] |
Pierwszy parametr tablicy określa kolejność międzysected elementów. W poniższym przykładzie pokazano, jak kolejność zwracanych elementów jest oparta na pierwszej tablicy.
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)
Dane wyjściowe z poprzedniego przykładu to:
Nazwisko | Typ | Wartość |
---|---|---|
commonUp | tablica | [1, 2, 3] |
commonDown | tablica | [3, 2, 1] |
ostatni
last(arg1)
Zwraca ostatni element tablicy lub ostatni znak ciągu.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | tablica lub ciąg | Wartość do pobrania ostatniego elementu lub znaku. |
Wartość zwracana
Typ (ciąg, int, tablica lub obiekt) ostatniego elementu w tablicy lub ostatni znak ciągu.
Przykład
W poniższym przykładzie pokazano, jak używać ostatniej funkcji z tablicą i ciągiem.
param arrayToTest array = [
'one'
'two'
'three'
]
output arrayOutput string = last(arrayToTest)
output stringOutput string = last('One Two three')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayOutput | String | trzy |
stringOutput | String | e |
lastIndexOf
lastIndexOf(arrayToSearch, itemToFind)
Zwraca liczbę całkowitą dla indeksu ostatniego wystąpienia elementu w tablicy. Porównanie uwzględnia wielkość liter dla ciągów.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arrayToSearch | Tak | tablica | Tablica do użycia do znajdowania indeksu przeszukanego elementu. |
itemToFind | Tak | int, string, array lub object | Element do znalezienia w tablicy. |
Wartość zwracana
Liczba całkowita reprezentująca ostatni indeks elementu w tablicy. Jest to indeks zaczynający się od zera. Jeśli element nie zostanie znaleziony, zostanie zwrócony -1.
Przykłady
W poniższym przykładzie pokazano, jak używać funkcji indexOf i 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)
Dane wyjściowe z poprzedniego przykładu to:
Nazwisko | Typ | Wartość |
---|---|---|
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)
Zwraca liczbę elementów w tablicy, znaki w ciągu lub właściwości na poziomie głównym w obiekcie.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | tablica, ciąg lub obiekt | Tablica do użycia do pobierania liczby elementów, ciągu do użycia do pobierania liczby znaków lub obiektu do pobrania liczby właściwości na poziomie głównym. |
Wartość zwracana
Int.
Przykład
W poniższym przykładzie pokazano, jak używać długości z tablicą i ciągiem:
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayLength | Int | 3 |
stringLength | Int | 13 |
objectLength | Int | 100 |
Przykłady z przewodnika Szybki start
Poniższy przykład został wyodrębniony z szablonu szybkiego startu: Wdrażanie usługi API Management w zewnętrznej sieci wirtualnej przy użyciu publicznego adresu IP :
@description('Numbers for availability zones, for example, 1,2,3.')
param availabilityZones array = [
'1'
'2'
]
resource exampleApim 'Microsoft.ApiManagement/service@2023-05-01-preview' = {
name: apiManagementName
location: location
sku: {
name: sku
capacity: skuCount
}
zones: ((length(availabilityZones) == 0) ? null : availabilityZones)
...
}
W wyrażeniu warunkowym funkcja sprawdza długość tablicy availabilityZones.length
Więcej przykładów można znaleźć w następujących plikach szybkiego startu Bicep:
- Tworzenie kopii zapasowych maszyn wirtualnych usługi Resource Manager przy użyciu magazynu usługi Recovery Services
- Wdrażanie usługi API Management w usłudze Strefy dostępności
- Tworzenie zapory i zasad zapory przy użyciu reguł i grup ip
- Tworzenie konfiguracji piaskownicy usługi Azure Firewall ze strefami
max
max(arg1)
Zwraca wartość maksymalną z tablicy liczb całkowitych lub rozdzielanej przecinkami listy liczb całkowitych.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | tablica liczb całkowitych lub rozdzielona przecinkami lista liczb całkowitych | Kolekcja, aby uzyskać maksymalną wartość. |
Wartość zwracana
Liczba całkowita reprezentująca wartość maksymalną.
Przykład
W poniższym przykładzie pokazano, jak używać wartości maksymalnej z tablicą i listą liczb całkowitych:
param arrayToTest array = [
0
3
2
5
4
]
output arrayOutput int = max(arrayToTest)
output intOutput int = max(0,3,2,5,4)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayOutput | Int | 5 |
intOutput | Int | 5 |
min
min(arg1)
Zwraca minimalną wartość z tablicy liczb całkowitych lub rozdzielanej przecinkami listy liczb całkowitych.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | tablica liczb całkowitych lub rozdzielona przecinkami lista liczb całkowitych | Kolekcja, aby uzyskać minimalną wartość. |
Wartość zwracana
Liczba int reprezentująca minimalną wartość.
Przykład
W poniższym przykładzie pokazano, jak używać min z tablicą i listą liczb całkowitych:
param arrayToTest array = [
0
3
2
5
4
]
output arrayOutput int = min(arrayToTest)
output intOutput int = min(0,3,2,5,4)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayOutput | Int | 0 |
intOutput | Int | 0 |
range
range(startIndex, count)
Tworzy tablicę liczb całkowitych na podstawie początkowej liczby całkowitej i zawiera liczbę elementów.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
startIndex | Tak | int | Pierwsza liczba całkowita w tablicy. Suma wartości startIndex i count nie może być większa niż 2147483647. |
count | Tak | int | Liczba liczb całkowitych w tablicy. Musi być nieujemna liczba całkowita do 10000. |
Wartość zwracana
Tablica liczb całkowitych.
Przykład
W poniższym przykładzie pokazano, jak używać funkcji zakresu:
param startingInt int = 5
param numberOfElements int = 3
output rangeOutput array = range(startingInt, numberOfElements)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
rangeOutput | Tablica | [5, 6, 7] |
Przykłady z przewodnika Szybki start
Poniższy przykład został wyodrębniony z szablonu szybkiego startu, dwie maszyny wirtualne w sieci wirtualnej — wewnętrzne reguły modułu równoważenia obciążenia i modułu równoważenia obciążenia:
...
var numberOfInstances = 2
resource networkInterface 'Microsoft.Network/networkInterfaces@2023-11-01' = [for i in range(0, numberOfInstances): {
name: '${networkInterfaceName}${i}'
location: location
properties: {
...
}
}]
resource vm 'Microsoft.Compute/virtualMachines@2024-03-01' = [for i in range(0, numberOfInstances): {
name: '${vmNamePrefix}${i}'
location: location
properties: {
...
}
}]
Plik Bicep tworzy dwie sieciInterface i dwa zasoby virtualMachine.
Więcej przykładów można znaleźć w następujących plikach szybkiego startu Bicep:
- Szablon wielu maszyn wirtualnych z dyskiem zarządzanym
- Tworzenie maszyny wirtualnej z wieloma pustymi dyskami danych StandardSSD_LRS
- Tworzenie zapory i zasad zapory przy użyciu reguł i grup ip
- Tworzenie usługi Azure Firewall przy użyciu grup IpGroups
- Tworzenie konfiguracji piaskownicy usługi Azure Firewall ze strefami
- Tworzenie usługi Azure Firewall z wieloma publicznymi adresami IP
- Tworzenie standardowego modułu równoważenia obciążenia
- Przykład maszyny wirtualnej usługi Azure Traffic Manager
- Tworzenie automatyzacji zabezpieczeń dla określonych alertów
- Maszyna wirtualna z programem SQL Server z zoptymalizowanymi ustawieniami magazynu zoptymalizowanymi pod kątem wydajności
- Tworzenie konta magazynu z wieloma kontenerami obiektów blob
- Tworzenie konta magazynu z wieloma udziałami plików
skip
skip(originalValue, numberToSkip)
Zwraca tablicę ze wszystkimi elementami po określonej liczbie w tablicy lub zwraca ciąg ze wszystkimi znakami po określonej liczbie w ciągu.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
originalValue | Tak | tablica lub ciąg | Tablica lub ciąg do użycia do pomijania. |
numberToSkip | Tak | int | Liczba elementów lub znaków do pominięcia. Jeśli ta wartość jest 0 lub mniejsza, zwracane są wszystkie elementy lub znaki w wartości. Jeśli jest on większy niż długość tablicy lub ciągu, zwracana jest pusta tablica lub ciąg. |
Wartość zwracana
Tablica lub ciąg.
Przykład
Poniższy przykład pomija określoną liczbę elementów w tablicy i określoną liczbę znaków w ciągu.
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayOutput | Tablica | ["trzy"] |
stringOutput | String | dwa trzy |
take
take(originalValue, numberToTake)
Zwraca tablicę z określoną liczbą elementów od początku tablicy lub ciągiem o określonej liczbie znaków od początku ciągu.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
originalValue | Tak | tablica lub ciąg | Tablica lub ciąg, z których mają być zabierane elementy. |
numberToTake | Tak | int | Liczba elementów lub znaków do podjęcia. Jeśli ta wartość jest 0 lub mniejsza, zwracana jest pusta tablica lub ciąg. Jeśli jest on większy niż długość danej tablicy lub ciągu, zwracane są wszystkie elementy tablicy lub ciągu. |
Wartość zwracana
Tablica lub ciąg.
Przykład
W poniższym przykładzie określona liczba elementów z tablicy i znaki z ciągu.
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayOutput | Tablica | ["jeden", "dwa"] |
stringOutput | String | on |
unia
union(arg1, arg2, arg3, ...)
Zwraca pojedynczą tablicę lub obiekt ze wszystkimi elementami z parametrów. W przypadku tablic są uwzględniane zduplikowane wartości raz. W przypadku obiektów zduplikowane nazwy właściwości są uwzględniane tylko raz.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | tablica lub obiekt | Pierwsza wartość, która ma być używana do łączenia elementów. |
arg2 | Tak | tablica lub obiekt | Druga wartość, która ma być używana do łączenia elementów. |
więcej argumentów | Nie. | tablica lub obiekt | Więcej wartości do użycia do łączenia elementów. |
Wartość zwracana
Tablica lub obiekt.
Uwagi
Funkcja union używa sekwencji parametrów do określenia kolejności i wartości wyniku.
W przypadku tablic funkcja iteruje każdy element w pierwszym parametrze i dodaje go do wyniku, jeśli nie jest jeszcze obecny. Następnie powtarza proces dla drugiego parametru i kolejnych parametrów. Jeśli wartość jest już obecna, jej wcześniejsze umieszczenie w tablicy jest zachowywane.
W przypadku obiektów nazwy właściwości i wartości z pierwszego parametru są dodawane do wyniku. W przypadku późniejszych parametrów wszystkie nowe nazwy są dodawane do wyniku. Jeśli późniejszy parametr ma właściwość o tej samej nazwie, ta wartość zastępuje istniejącą wartość. Kolejność właściwości nie jest gwarantowana.
Funkcja union scala nie tylko elementy najwyższego poziomu, ale także rekursywnie scala wszystkie zagnieżdżone obiekty w nich. Zagnieżdżone wartości tablicy nie są scalane. Zobacz drugi przykład w poniższej sekcji.
Przykład
W poniższym przykładzie pokazano, jak używać unii z tablicami i obiektami:
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
objectOutput | Objekt | {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"} |
arrayOutput | Tablica | ["one", "two", "three", "four"] |
W poniższym przykładzie przedstawiono możliwość głębokiego scalania:
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)
Dane wyjściowe z poprzedniego przykładu to:
Nazwisko | Typ | Wartość |
---|---|---|
objectOutput | Objekt | {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]} |
arrayOutput | Tablica | [["one","two"],["three"],["four","two"]] |
Jeśli zagnieżdżone tablice zostały scalone, wartość objectOutput.nestedArray będzie wynosić [1, 2, 3, 4], a wartość arrayOutput będzie wynosić [["jeden", "dwa", "trzy"], ["trzy", "cztery", "dwa"]].
Następne kroki
- Aby uzyskać tablicę wartości ciągów rozdzielonych przez wartość, zobacz podział.