Dela via


Matrisfunktioner för ARM-mallar

Den här artikeln beskriver mallfunktionerna för att arbeta med matriser.

Information om hur du hämtar en matris med strängvärden avgränsade med ett värde finns i dela.

Dricks

Vi rekommenderar Bicep eftersom det erbjuder samma funktioner som ARM-mallar och syntaxen är enklare att använda. Mer information finns i matrisfunktioner .

matris

array(convertToArray)

Konverterar värdet till en matris.

I Bicep använder du matrisfunktionen .

Parametrar

Parameter Obligatoriskt Type Beskrivning
convertToArray Ja int, string, array eller object Värdet som ska konverteras till en matris.

Returvärde

En matris.

Exempel

I följande exempel visas hur du använder matrisfunktionen med olika typer.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "intToConvert": {
      "type": "int",
      "defaultValue": 1
    },
    "stringToConvert": {
      "type": "string",
      "defaultValue": "efgh"
    },
    "objectToConvert": {
      "type": "object",
      "defaultValue": {
        "a": "b",
        "c": "d"
      }
    }
  },
  "resources": [
  ],
  "outputs": {
    "intOutput": {
      "type": "array",
      "value": "[array(parameters('intToConvert'))]"
    },
    "stringOutput": {
      "type": "array",
      "value": "[array(parameters('stringToConvert'))]"
    },
    "objectOutput": {
      "type": "array",
      "value": "[array(parameters('objectToConvert'))]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
intOutput Matris [1]
stringOutput Matris ["efgh"]
objectOutput Matris [{"a": "b", "c": "d"}]

concat

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

Kombinerar flera matriser och returnerar den sammanfogade matrisen, eller kombinerar flera strängvärden och returnerar den sammanfogade strängen.

I Bicep använder du funktionen concat .

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris eller sträng Den första matrisen eller strängen för sammanfogning.
fler argument Nej matris eller sträng Fler matriser eller strängar i sekventiell ordning för sammanfogning.

Den här funktionen kan ta valfritt antal argument och kan acceptera antingen strängar eller matriser för parametrarna. Du kan dock inte ange både matriser och strängar för parametrar. Matriser sammanfogas bara med andra matriser.

Returvärde

En sträng eller matris med sammanfogade värden.

Exempel

I följande exempel visas hur du kombinerar två matriser.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstArray": {
      "type": "array",
      "defaultValue": [
        "1-1",
        "1-2",
        "1-3"
      ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [
        "2-1",
        "2-2",
        "2-3"
      ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "return": {
      "type": "array",
      "value": "[concat(parameters('firstArray'), parameters('secondArray'))]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
retur Matris ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"]

I följande exempel visas hur du kombinerar två strängvärden och returnerar en sammanfogad sträng.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "prefix": {
      "type": "string",
      "defaultValue": "prefix"
    }
  },
  "resources": [],
  "outputs": {
    "concatOutput": {
      "type": "string",
      "value": "[concat(parameters('prefix'), '-', uniqueString(resourceGroup().id))]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
concatOutput String prefix-5yj4yjf5mbg72

innehåller

contains(container, itemToFind)

Kontrollerar om en matris innehåller ett värde, ett objekt innehåller en nyckel eller om en sträng innehåller en delsträng. Strängjämförelsen är skiftlägeskänslig. Men när du testar om ett objekt innehåller en nyckel är jämförelsen skiftlägeskänslig.

I Bicep använder du funktionen contains .

Parametrar

Parameter Obligatoriskt Type Beskrivning
container Ja matris, objekt eller sträng Värdet som innehåller det värde som ska hittas.
itemToFind Ja sträng eller int Värdet som ska hittas.

Returvärde

Sant om objektet hittas, annars Falskt.

Exempel

I följande exempel visas hur du använder containrar med olika typer:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringToTest": {
      "type": "string",
      "defaultValue": "OneTwoThree"
    },
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c"
      }
    },
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "stringTrue": {
      "type": "bool",
      "value": "[contains(parameters('stringToTest'), 'e')]"
    },
    "stringFalse": {
      "type": "bool",
      "value": "[contains(parameters('stringToTest'), 'z')]"
    },
    "objectTrue": {
      "type": "bool",
      "value": "[contains(parameters('objectToTest'), 'one')]"
    },
    "objectFalse": {
      "type": "bool",
      "value": "[contains(parameters('objectToTest'), 'a')]"
    },
    "arrayTrue": {
      "type": "bool",
      "value": "[contains(parameters('arrayToTest'), 'three')]"
    },
    "arrayFalse": {
      "type": "bool",
      "value": "[contains(parameters('arrayToTest'), 'four')]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
stringTrue Bool Sant
stringFalse Bool Falsk
objectTrue Bool Sant
objectFalse Bool Falsk
arrayTrue Bool Sant
arrayFalse Bool Falsk

createArray

createArray(arg1, arg2, arg3, ...)

Skapar en matris från parametrarna.

I Bicep createArray stöds inte funktionen. Information om hur du skapar en matris finns i datatypen Bicep-matris.

Parametrar

Parameter Obligatoriskt Type Beskrivning
args Nej Sträng, heltal, matris eller objekt Värdena i matrisen.

Returvärde

En matris. När inga parametrar anges returneras en tom matris.

Exempel

I följande exempel visas hur du använder createArray med olika typer:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c"
      }
    },
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "stringArray": {
      "type": "array",
      "value": "[createArray('a', 'b', 'c')]"
    },
    "intArray": {
      "type": "array",
      "value": "[createArray(1, 2, 3)]"
    },
    "objectArray": {
      "type": "array",
      "value": "[createArray(parameters('objectToTest'))]"
    },
    "arrayArray": {
      "type": "array",
      "value": "[createArray(parameters('arrayToTest'))]"
    },
    "emptyArray": {
      "type": "array",
      "value": "[createArray()]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
stringArray Matris ["a", "b", "c"]
intArray Matris [1, 2, 3]
objectArray Matris [{"one": "a", "two": "b", "three": "c"}]
arrayArray Matris [["one", "two", "three"]]
emptyArray Matris []

empty

empty(itemToTest)

Avgör om en matris, ett objekt eller en sträng är tom.

Använd den tomma funktionen i Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
itemToTest Ja matris, objekt eller sträng Värdet för att kontrollera om det är tomt.

Returvärde

Returnerar Sant om värdet är tomt, annars Falskt.

Exempel

I följande exempel kontrolleras om en matris, ett objekt och en sträng är tomma.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": []
    },
    "testObject": {
      "type": "object",
      "defaultValue": {}
    },
    "testString": {
      "type": "string",
      "defaultValue": ""
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testArray'))]"
    },
    "objectEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testObject'))]"
    },
    "stringEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testString'))]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
arrayEmpty Bool Sant
objectEmpty Bool Sant
stringEmpty Bool Sant

Första

first(arg1)

Returnerar det första elementet i matrisen eller det första tecknet i strängen.

Använd den första funktionen i Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris eller sträng Värdet för att hämta det första elementet eller tecknet.

Returvärde

Typen (sträng, int, matris eller objekt) för det första elementet i en matris eller det första tecknet i en sträng.

Exempel

I följande exempel visas hur du använder den första funktionen med en matris och sträng.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayOutput": {
      "type": "string",
      "value": "[first(parameters('arrayToTest'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[first('One Two Three')]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
arrayOutput String en
stringOutput String O

indexOf

indexOf(arrayToSearch, itemToFind)

Returnerar ett heltal för indexet för den första förekomsten av ett objekt i en matris. Jämförelsen är skiftlägeskänslig för strängar.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arrayToSearch Ja matris Matrisen som ska användas för att hitta indexet för det sökta objektet.
itemToFind Ja int, string, array eller object Objektet som ska hittas i matrisen.

Returvärde

Ett heltal som representerar det första indexet för objektet i matrisen. Indexet är nollbaserat. Om objektet inte hittas returneras -1.

Exempel

I följande exempel visas hur du använder funktionerna indexOf och lastIndexOf:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "names": [
      "one",
      "two",
      "three"
    ],
    "numbers": [
      4,
      5,
      6
    ],
    "collection": [
      "[variables('names')]",
      "[variables('numbers')]"
    ],
    "duplicates": [
      1,
      2,
      3,
      1
    ]
  },
  "resources": [],
  "outputs": {
    "index1": {
      "type": "int",
      "value": "[lastIndexOf(variables('names'), 'two')]"
    },
    "index2": {
      "type": "int",
      "value": "[indexOf(variables('names'), 'one')]"
    },
    "notFoundIndex1": {
      "type": "int",
      "value": "[lastIndexOf(variables('names'), 'Three')]"
    },
    "index3": {
      "type": "int",
      "value": "[lastIndexOf(variables('numbers'), 4)]"
    },
    "index4": {
      "type": "int",
      "value": "[indexOf(variables('numbers'), 6)]"
    },
    "notFoundIndex2": {
      "type": "int",
      "value": "[lastIndexOf(variables('numbers'), '5')]"
    },
    "index5": {
      "type": "int",
      "value": "[indexOf(variables('collection'), variables('numbers'))]"
    },
    "index6": {
      "type": "int",
      "value": "[indexOf(variables('duplicates'), 1)]"
    },
    "index7": {
      "type": "int",
      "value": "[lastIndexOf(variables('duplicates'), 1)]"
    }
  }
}

Utdata från föregående exempel är:

Namn Typ Värde
index1 heltal 1
index2 heltal 0
index3 heltal 0
index4 heltal 2
index5 heltal 1
index6 heltal 0
index7 heltal 3
notFoundIndex1 heltal -1
notFoundIndex2 heltal -1

Korsningen

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

Returnerar en enskild matris eller ett objekt med de gemensamma elementen från parametrarna.

Använd skärningsfunktionen i Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris eller objekt Det första värdet som ska användas för att hitta vanliga element.
arg2 Ja matris eller objekt Det andra värdet som ska användas för att hitta vanliga element.
fler argument Nej matris eller objekt Fler värden att använda för att hitta vanliga element.

Returvärde

En matris eller ett objekt med de gemensamma elementen.

Exempel

I följande exempel visas hur du använder skärningspunkt med matriser och objekt.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstObject": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c"
      }
    },
    "secondObject": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "z",
        "three": "c"
      }
    },
    "firstArray": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [ "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "objectOutput": {
      "type": "object",
      "value": "[intersection(parameters('firstObject'), parameters('secondObject'))]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[intersection(parameters('firstArray'), parameters('secondArray'))]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
objectOutput Objekt {"one": "a", "three": "c"}
arrayOutput Matris ["två", "tre"]

senaste

last(arg1)

Returnerar det sista elementet i matrisen eller det sista tecknet i strängen.

Använd den sista funktionen i Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris eller sträng Värdet för att hämta det sista elementet eller tecknet.

Returvärde

Typen (sträng, int, matris eller objekt) för det sista elementet i en matris eller det sista tecknet i en sträng.

Exempel

I följande exempel visas hur du använder den sista funktionen med en matris och sträng.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayOutput": {
      "type": "string",
      "value": "[last(parameters('arrayToTest'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[last('One Two Three')]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
arrayOutput String tre
stringOutput String e

lastIndexOf

lastIndexOf(arrayToSearch, itemToFind)

Returnerar ett heltal för indexet för den senaste förekomsten av ett objekt i en matris. Jämförelsen är skiftlägeskänslig för strängar.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arrayToSearch Ja matris Matrisen som ska användas för att hitta indexet för det sökta objektet.
itemToFind Ja int, string, array eller object Objektet som ska hittas i matrisen.

Returvärde

Ett heltal som representerar det sista indexet för objektet i matrisen. Indexet är nollbaserat. Om objektet inte hittas returneras -1.

Exempel

I följande exempel visas hur du använder funktionerna indexOf och lastIndexOf:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "names": [
      "one",
      "two",
      "three"
    ],
    "numbers": [
      4,
      5,
      6
    ],
    "collection": [
      "[variables('names')]",
      "[variables('numbers')]"
    ],
    "duplicates": [
      1,
      2,
      3,
      1
    ]
  },
  "resources": [],
  "outputs": {
    "index1": {
      "type": "int",
      "value": "[lastIndexOf(variables('names'), 'two')]"
    },
    "index2": {
      "type": "int",
      "value": "[indexOf(variables('names'), 'one')]"
    },
    "notFoundIndex1": {
      "type": "int",
      "value": "[lastIndexOf(variables('names'), 'Three')]"
    },
    "index3": {
      "type": "int",
      "value": "[lastIndexOf(variables('numbers'), 4)]"
    },
    "index4": {
      "type": "int",
      "value": "[indexOf(variables('numbers'), 6)]"
    },
    "notFoundIndex2": {
      "type": "int",
      "value": "[lastIndexOf(variables('numbers'), '5')]"
    },
    "index5": {
      "type": "int",
      "value": "[indexOf(variables('collection'), variables('numbers'))]"
    },
    "index6": {
      "type": "int",
      "value": "[indexOf(variables('duplicates'), 1)]"
    },
    "index7": {
      "type": "int",
      "value": "[lastIndexOf(variables('duplicates'), 1)]"
    }
  }
}

Utdata från föregående exempel är:

Namn Typ Värde
index1 heltal 1
index2 heltal 0
index3 heltal 0
index4 heltal 2
index5 heltal 1
index6 heltal 0
index7 heltal 3
notFoundIndex1 heltal -1
notFoundIndex2 heltal -1

längd

length(arg1)

Returnerar antalet element i en matris, tecken i en sträng eller rotnivåegenskaper i ett objekt.

Använd längdfunktionen i Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris, sträng eller objekt Matrisen som ska användas för att hämta antalet element, strängen som ska användas för att hämta antalet tecken eller det objekt som ska användas för att hämta antalet egenskaper på rotnivå.

Returvärde

Ett int.

Exempel

I följande exempel visas hur du använder längd med en matris och sträng.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "stringToTest": {
      "type": "string",
      "defaultValue": "One Two Three"
    },
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "propA": "one",
        "propB": "two",
        "propC": "three",
        "propD": {
          "propD-1": "sub",
          "propD-2": "sub"
        }
      }
    }
  },
  "resources": [],
  "outputs": {
    "arrayLength": {
      "type": "int",
      "value": "[length(parameters('arrayToTest'))]"
    },
    "stringLength": {
      "type": "int",
      "value": "[length(parameters('stringToTest'))]"
    },
    "objectLength": {
      "type": "int",
      "value": "[length(parameters('objectToTest'))]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
arrayLength Int 3
stringLength Int 13
objectLength Int 4

Du kan använda den här funktionen med en matris för att ange antalet iterationer när du skapar resurser. I följande exempel refererar parametern siteNames till en matris med namn som ska användas när webbplatserna skapas.

"copy": {
  "name": "websitescopy",
  "count": "[length(parameters('siteNames'))]"
}

Mer information om hur du använder den här funktionen med en matris finns i Resurs iteration i ARM-mallar.

max

max(arg1)

Returnerar det maximala värdet från en matris med heltal eller en kommaavgränsad lista med heltal.

Använd maxfunktionen i Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris med heltal eller kommaavgränsad lista över heltal Samlingen för att hämta det maximala värdet.

Returvärde

En int som representerar det maximala värdet.

Exempel

I följande exempel visas hur du använder max med en matris och en lista över heltal.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ 0, 3, 2, 5, 4 ]
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "int",
      "value": "[max(parameters('arrayToTest'))]"
    },
    "intOutput": {
      "type": "int",
      "value": "[max(0,3,2,5,4)]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
arrayOutput Int 5
intOutput Int 5

min

min(arg1)

Returnerar det minsta värdet från en matris med heltal eller en kommaavgränsad lista med heltal.

I Bicep använder du funktionen min .

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris med heltal eller kommaavgränsad lista över heltal Samlingen för att hämta minimivärdet.

Returvärde

En int som representerar minimivärdet.

Exempel

I följande exempel visas hur du använder min med en matris och en lista med heltal.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ 0, 3, 2, 5, 4 ]
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "int",
      "value": "[min(parameters('arrayToTest'))]"
    },
    "intOutput": {
      "type": "int",
      "value": "[min(0,3,2,5,4)]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
arrayOutput Int 0
intOutput Int 0

intervall

range(startIndex, count)

Skapar en matris med heltal från ett start heltal och innehåller ett antal objekt.

Använd intervallfunktionen i Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
startIndex Ja heltal Det första heltalet i matrisen. Summan av startIndex och antal får inte vara större än 2147483647.
antal Ja heltal Antalet heltal i matrisen. Måste vara ett heltal som inte är negativt upp till 10000.

Returvärde

En matris med heltal.

Exempel

I följande exempel visas hur du använder intervallfunktionen.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "startingInt": {
      "type": "int",
      "defaultValue": 5
    },
    "numberOfElements": {
      "type": "int",
      "defaultValue": 3
    }
  },
  "resources": [],
  "outputs": {
    "rangeOutput": {
      "type": "array",
      "value": "[range(parameters('startingInt'),parameters('numberOfElements'))]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
rangeOutput Matris [5, 6, 7]

hoppa över

skip(originalValue, numberToSkip)

Returnerar en matris med alla element efter det angivna talet i matrisen eller returnerar en sträng med alla tecken efter det angivna talet i strängen.

I Bicep använder du funktionen hoppa över .

Parametrar

Parameter Obligatoriskt Type Beskrivning
originalValue Ja matris eller sträng Matrisen eller strängen som ska användas för att hoppa över.
numberToSkip Ja heltal Antalet element eller tecken som ska hoppa över. Om det här värdet är 0 eller mindre returneras alla element eller tecken i värdet. Om den är större än längden på matrisen eller strängen returneras en tom matris eller sträng.

Returvärde

En matris eller sträng.

Exempel

I följande exempel hoppar över det angivna antalet element i matrisen och det angivna antalet tecken i en sträng.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "elementsToSkip": {
      "type": "int",
      "defaultValue": 2
    },
    "testString": {
      "type": "string",
      "defaultValue": "one two three"
    },
    "charactersToSkip": {
      "type": "int",
      "defaultValue": 4
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "array",
      "value": "[skip(parameters('testArray'),parameters('elementsToSkip'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[skip(parameters('testString'),parameters('charactersToSkip'))]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
arrayOutput Matris ["tre"]
stringOutput String två tre

ta

take(originalValue, numberToTake)

Returnerar en matris eller sträng. En matris har det angivna antalet element från början av matrisen. En sträng har det angivna antalet tecken från början av strängen.

I Bicep använder du funktionen take .

Parametrar

Parameter Obligatoriskt Type Beskrivning
originalValue Ja matris eller sträng Matrisen eller strängen som elementen ska hämtas från.
numberToTake Ja heltal Antalet element eller tecken att ta. Om det här värdet är 0 eller mindre returneras en tom matris eller sträng. Om den är större än längden på den angivna matrisen eller strängen returneras alla element i matrisen eller strängen.

Returvärde

En matris eller sträng.

Exempel

I följande exempel används det angivna antalet element från matrisen och tecken från en sträng.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "elementsToTake": {
      "type": "int",
      "defaultValue": 2
    },
    "testString": {
      "type": "string",
      "defaultValue": "one two three"
    },
    "charactersToTake": {
      "type": "int",
      "defaultValue": 2
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "array",
      "value": "[take(parameters('testArray'),parameters('elementsToTake'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[take(parameters('testString'),parameters('charactersToTake'))]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
arrayOutput Matris ["en", "två"]
stringOutput String on

union

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

Returnerar en enskild matris eller ett objekt med alla element från parametrarna. För matriser inkluderas duplicerade värden en gång. För objekt inkluderas duplicerade egenskapsnamn bara en gång.

I Bicep använder du unionsfunktionen .

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris eller objekt Det första värdet som ska användas för att koppla element.
arg2 Ja matris eller objekt Det andra värdet som ska användas för att koppla element.
fler argument Nej matris eller objekt Fler värden att använda för att koppla element.

Returvärde

En matris eller ett objekt.

Kommentarer

Union-funktionen använder sekvensen för parametrarna för att fastställa resultatets ordning och värden.

För matriser itererar funktionen genom varje element i den första parametern och lägger till den i resultatet om den inte redan finns. Sedan upprepas processen för den andra parametern och eventuella fler parametrar. Om ett värde redan finns bevaras dess tidigare placering i matrisen.

För objekt läggs egenskapsnamn och värden från den första parametern till i resultatet. För senare parametrar läggs alla nya namn till i resultatet. Om en senare parameter har en egenskap med samma namn skriver det värdet över det befintliga värdet. Ordningen på egenskaperna är inte garanterad.

Union-funktionen sammanfogar inte bara de översta elementen utan sammanfogar också rekursivt alla kapslade objekt i dem. Kapslade matrisvärden sammanfogas inte. Se det andra exemplet i följande avsnitt.

Exempel

I följande exempel visas hur du använder union med matriser och objekt.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstObject": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c1"
      }
    },
    "secondObject": {
      "type": "object",
      "defaultValue": {
        "three": "c2",
        "four": "d",
        "five": "e"
      }
    },
    "firstArray": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [ "three", "four" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "objectOutput": {
      "type": "object",
      "value": "[union(parameters('firstObject'), parameters('secondObject'))]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[union(parameters('firstArray'), parameters('secondArray'))]"
    }
  }
}

Utdata från föregående exempel med standardvärdena är:

Namn Typ Värde
objectOutput Objekt {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"}
arrayOutput Matris ["en", "två", "tre", "fyra"]

I följande exempel visas funktionen för djupsammanslagning:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "firstObject": {
      "property": {
        "one": "a",
        "two": "b",
        "three": "c1"
      },
      "nestedArray": [
        1,
        2
      ]
    },
    "secondObject": {
      "property": {
        "three": "c2",
        "four": "d",
        "five": "e"
      },
      "nestedArray": [
        3,
        4
      ]
    },
    "firstArray": [
      [
        "one",
        "two"
      ],
      [
        "three"
      ]
    ],
    "secondArray": [
      [
        "three"
      ],
      [
        "four",
        "two"
      ]
    ]
  },
  "resources": [],
  "outputs": {
    "objectOutput": {
      "type": "Object",
      "value": "[union(variables('firstObject'), variables('secondObject'))]"
    },
    "arrayOutput": {
      "type": "Array",
      "value": "[union(variables('firstArray'), variables('secondArray'))]"
    }
  }
}

Utdata från föregående exempel är:

Namn Typ Värde
objectOutput Objekt {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]}
arrayOutput Matris [["one","two"],["three"],["four","two"]]

Om kapslade matriser sammanfogades skulle värdet för objectOutput.nestedArray vara [1, 2, 3, 4], och värdet för arrayOutput skulle vara [["one", "two", "three"], ["three", "four", "two"]].

Nästa steg