Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden de lambda-functies beschreven die in Bicep moeten worden gebruikt. Lambda-expressies (of lambda-functies) zijn in wezen blokken code die als argument kunnen worden doorgegeven. Ze kunnen meerdere parameters gebruiken, maar zijn beperkt tot één regel code. In Bicep heeft lambda-expressie deze indeling:
<lambda variable> => <expression>
Notitie
De lambda-functies worden alleen ondersteund in Bicep CLI versie 0.10.X of hoger.
Beperkingen
De functie Bicep lambda heeft deze beperkingen:
- Lambda-expressie kan alleen rechtstreeks worden opgegeven als functieargumenten in deze functies: 
filter(), ,groupBy()mapValues()map(), ,reduce(), , ,sort()en .toObject() - Het gebruik van lambda-variabelen (de tijdelijke variabelen die worden gebruikt in de lambda-expressies) binnen resource- of modulematrixtoegang wordt momenteel niet ondersteund.
 - Het gebruik van lambda-variabelen in de 
listKeysfunctie wordt momenteel niet ondersteund. - Het gebruik van lambda-variabelen in de referentiefunctie wordt momenteel niet ondersteund.
 
filter
filter(inputArray, lambda expression)
Hiermee filtert u een matrix met een aangepaste filterfunctie.
Naamruimte: sys.
Parameters
| Parameter | Vereist | Type | Description | 
|---|---|---|---|
| inputArray | Ja | matrix | De matrix die moet worden gefilterd. | 
| lambda-expressie | Ja | Expressie | De lambda-expressie wordt toegepast op elk invoermatrixelement. Als het resultaat waar is, wordt het item opgenomen in de uitvoermatrix; anders wordt het item verwijderd. | 
Retourwaarde
Een matrix.
Voorbeelden
In de volgende voorbeelden ziet u hoe u de filter functie gebruikt.
var dogs = [
  {
    name: 'Evie'
    age: 5
    interests: ['Ball', 'Frisbee']
  }
  {
    name: 'Casper'
    age: 3
    interests: ['Other dogs']
  }
  {
    name: 'Indy'
    age: 2
    interests: ['Butter']
  }
  {
    name: 'Cira'
    age: 8
    interests: ['Rubs']
  }
]
output oldDogs array = filter(dogs, dog => dog.age >=5)
output dogNameIndex array = filter(dogs, (val, i) => i < 2 && substring(val.name, 0, 1) == 'C')
De uitvoer uit het vorige voorbeeld:
| Name | Type | Weergegeven als | 
|---|---|---|
| oldDogs | Matrix | [{"name":"Evie","age":5,"interests":["Ball","Frisbee"]},{"name":"Kira","age":8,"interest":["Rubs"]}] | 
| dogNameIndex | Matrix | [{"name":"Source","age":3,"interest":["Other dogs"]}] | 
oldDogs vermeldt de honden die vijf of ouder zijn; dogNameIndex identificeert de honden waarvan het indexnummer kleiner is dan twee en waarvan de naam begint met de letter C.
var itemForLoop = [for item in range(0, 10): item]
output filteredLoop array = filter(itemForLoop, i => i > 5)
output isEven array = filter(range(0, 10), i => 0 == i % 2)
De uitvoer uit het vorige voorbeeld:
| Name | Type | Weergegeven als | 
|---|---|---|
| filteredLoop | Matrix | [6, 7, 8, 9] | 
| isEven | Matrix | [0, 2, 4, 6, 8] | 
filterdLoop toont de getallen in een matrix die groter is dan 5; en isEven toont de even getallen in de matrix.
groupBy
groupBy(inputArray, lambda expression)
Hiermee maakt u een object met matrixwaarden van een matrix met behulp van een groeperingsvoorwaarde.
Naamruimte: sys.
Parameters
| Parameter | Vereist | Type | Description | 
|---|---|---|---|
| inputArray | Ja | matrix | De matrix voor groepering. | 
| lambda-expressie | Ja | Expressie | De lambda-expressie wordt toegepast op elk invoermatrixelement en groepeert de elementen met behulp van de groeperingsvoorwaarde. | 
Retourwaarde
Een object.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de groupBy functie gebruikt.
var inputArray = ['foo', 'bar', 'baz']
output outObject object = groupBy(inputArray, x => substring(x, 0, 1)) 
De uitvoer uit het vorige voorbeeld:
| Name | Type | Weergegeven als | 
|---|---|---|
| outObject | Object | {"f":["foo"],"b":["bar","baz"]} | 
outObject toont een object waarmee de matrixelementen worden gegroepeerd op basis van de eerste letters.
map
map(inputArray, lambda expression)
Hiermee past u een aangepaste toewijzingsfunctie toe op elk element van een matrix.
Naamruimte: sys.
Parameters
| Parameter | Vereist | Type | Description | 
|---|---|---|---|
| inputArray | Ja | matrix | De matrix die moet worden toegewezen. | 
| lambda-expressie | Ja | Expressie | De lambda-expressie die wordt toegepast op elk element van de invoermatrix om de uitvoermatrix te genereren. | 
Retourwaarde
Een matrix.
Opmerking
In het volgende voorbeeld ziet u hoe u de map functie gebruikt.
var dogs = [
  {
    name: 'Evie'
    age: 5
    interests: ['Ball', 'Frisbee']
  }
  {
    name: 'Casper'
    age: 3
    interests: ['Other dogs']
  }
  {
    name: 'Indy'
    age: 2
    interests: ['Butter']
  }
  {
    name: 'Kira'
    age: 8
    interests: ['Rubs']
  }
]
output dogNames array = map(dogs, dog => dog.name)
output sayHi array = map(dogs, dog => 'Hello ${dog.name}!')
output mapArray array = map(range(0, length(dogs)), i => {
  i: i
  dog: dogs[i].name
  greeting: 'Ahoy, ${dogs[i].name}!'
})
output mapArrayIndex array = map(dogs, (x, i) => { index: i, val: x.name})
De uitvoer uit het vorige voorbeeld zijn:
| Name | Type | Weergegeven als | 
|---|---|---|
| dogNames | Matrix | ["Evie","Neerkom","Indy","Kira"] | 
| sayHi | Matrix | ["Hallo Evie!","Hallo Neerkom!","Hallo Indy!","Hallo Kira!"] | 
| mapArray | Matrix | [{"i":0,"dog":"Evie","greeting":"Ahoy, Evie!},{"i":1,"dog":"Neerkom","begroeting":"Ahoy,Source!"},{"i":2,"dog":"Indy","greeting":"Ahoy, Indy!"},{"i":3,"dog":"Kira","greeting":"Ahoy, Kira!"}] | 
| mapArrayIndex | Matrix | [{"index":0,"val":"Evie"},{"index":1,"val":"Neerkom"},{"index":2,"val":"Indy"},{"index":3,"val":"Kira"}] | 
dogNames toont de namen van de honden uit de matrix van objecten; sayHi voegt "Hallo" en elk van de namen van de honden samen; mapArray en mapArrayIndex maken nog twee matrices van objecten.
mapValues
mapValues(inputObject, lambda expression)
Hiermee maakt u een object op basis van een invoerobject met behulp van een lambda-expressie om waarden toe te wijzen.
Naamruimte: sys.
Parameters
| Parameter | Vereist | Type | Description | 
|---|---|---|---|
| inputObject | Ja | object | Het object dat moet worden toegewezen. | 
| lambda-expressie | Ja | Expressie | De lambda-expressie die wordt gebruikt om de waarden toe te wijzen. | 
Retourwaarde
Een object.
Opmerking
In het volgende voorbeeld ziet u hoe u de mapValues functie gebruikt.
var inputObject = { foo: 'foo', bar: 'bar' }
output mapObject object = mapValues(inputObject, val => toUpper(val)) 
De uitvoer uit het voorgaande voorbeeld is:
| Name | Type | Weergegeven als | 
|---|---|---|
| mapObject | Object | {foo: 'FOO', balk: 'BAR'} | 
mapObject maakt een ander object met de waarden in hoofdletters.
Verminderen
reduce(inputArray, initialValue, lambda expression)
Vermindert een matrix met een aangepaste reductiefunctie.
Naamruimte: sys.
Parameters
| Parameter | Vereist | Type | Description | 
|---|---|---|---|
| inputArray | Ja | matrix | De matrix die moet worden verkleind. | 
| initialValue | Ja | willekeurige | Initiële waarde. | 
| lambda-expressie | Ja | Expressie | De lambda-expressie die wordt gebruikt om de huidige waarde en de volgende waarde samen te voegen. | 
Retourwaarde
Alle.
Opmerking
In de volgende voorbeelden ziet u hoe u de reduce functie gebruikt.
var dogs = [
  {
    name: 'Evie'
    age: 5
    interests: ['Ball', 'Frisbee']
  }
  {
    name: 'Casper'
    age: 3
    interests: ['Other dogs']
  }
  {
    name: 'Indy'
    age: 2
    interests: ['Butter']
  }
  {
    name: 'Kira'
    age: 8
    interests: ['Rubs']
  }
]
var ages = map(dogs, dog => dog.age)
output totalAge int = reduce(ages, 0, (cur, next) => cur + next)
output totalAgeAdd1 int = reduce(ages, 1, (cur, next) => cur + next)
output oddAge int = reduce(ages, 0, (cur, next, i) => (i % 2 == 0) ? cur + next : cur)
De uitvoer uit het vorige voorbeeld zijn:
| Name | Type | Weergegeven als | 
|---|---|---|
| totalage | int | 18 | 
| totalAgeAdd1 | int | 19 | 
| oddAge | int | 7 | 
totalAge telt de leeftijden van de honden op; totalAgeAdd1 heeft een initiële waarde van 1 en voegt alle leeftijden van de hond toe aan de initiële waarden. oddAge telt de leeftijden van honden op die zich op even indexen bevinden, met name 5 (Evie) en 2 (Indy).
output reduceObjectUnion object = reduce([
  { foo: 123 }
  { bar: 456 }
  { baz: 789 }
], {}, (cur, next) => union(cur, next))
De uitvoer uit het voorgaande voorbeeld is:
| Name | Type | Weergegeven als | 
|---|---|---|
| reduceObjectUnion | object | {"foo":123,"bar":456,"baz":789} | 
De samenvoegfunctie retourneert één object met alle elementen uit de parameters. Met de functie worden de sleutelwaardeparen van de objecten samengevoegd in een nieuw object.
sort
sort(inputArray, lambda expression)
Hiermee sorteert u een matrix met een aangepaste sorteerfunctie.
Naamruimte: sys.
Parameters
| Parameter | Vereist | Type | Description | 
|---|---|---|---|
| inputArray | Ja | matrix | De matrix die moet worden gesorteerd. | 
| lambda-expressie | Ja | Expressie | De lambda-expressie die wordt gebruikt om twee matrixelementen te vergelijken voor het ordenen. Indien waar, wordt het tweede element na de eerste in de uitvoermatrix geordend. | 
Retourwaarde
Een matrix.
Opmerking
In het volgende voorbeeld ziet u hoe u de sort functie gebruikt.
var dogs = [
  {
    name: 'Evie'
    age: 5
    interests: ['Ball', 'Frisbee']
  }
  {
    name: 'Casper'
    age: 3
    interests: ['Other dogs']
  }
  {
    name: 'Indy'
    age: 2
    interests: ['Butter']
  }
  {
    name: 'Kira'
    age: 8
    interests: ['Rubs']
  }
]
output dogsByAge array = sort(dogs, (a, b) => a.age < b.age)
De uitvoer uit het voorgaande voorbeeld sorteert de hondenobjecten van de jongste naar de oudste:
| Name | Type | Weergegeven als | 
|---|---|---|
| dogsByAge | Matrix | [{"name":"Indy","age":2,"interest":["Butter"]},{"name":"Source","age":3,"interest":["Other dogs"]},{"name ":"Evie","age":5,"interest":["Ball","Frisbee"]},{"name":"Kira","age":8,"interest":["Rubs"]}] | 
Toobject
toObject(inputArray, lambda expression, [lambda expression])
Converteert een matrix naar een object met een aangepaste sleutelfunctie en optionele aangepaste waardefunctie. Zie items over het converteren van een object naar een matrix.
Naamruimte: sys.
Parameters
| Parameter | Vereist | Type | Description | 
|---|---|---|---|
| inputArray | Ja | matrix | De matrix die wordt gebruikt voor het maken van een object. | 
| lambda-expressie | Ja | Expressie | De lambda-expressie die wordt gebruikt om het sleutelpredicaat op te geven. | 
| lambda-expressie | Nee | Expressie | De lambda-expressie die wordt gebruikt om het waardepredicaat op te geven. | 
Retourwaarde
Een object.
Opmerking
In het volgende voorbeeld ziet u hoe u de toObject functie gebruikt met de twee vereiste parameters:
var dogs = [
  {
    name: 'Evie'
    age: 5
    interests: [ 'Ball', 'Frisbee' ]
  }
  {
    name: 'Casper'
    age: 3
    interests: [ 'Other dogs' ]
  }
  {
    name: 'Indy'
    age: 2
    interests: [ 'Butter' ]
  }
  {
    name: 'Kira'
    age: 8
    interests: [ 'Rubs' ]
  }
]
output dogsObject object = toObject(dogs, entry => entry.name)
In het voorgaande voorbeeld wordt een object gegenereerd op basis van een matrix.
| Name | Type | Weergegeven als | 
|---|---|---|
| dogsObject | Object | {"Evie":{"name":"Evie","age":5,"interests":["Ball","Frisbee"]},"Resource":{"name":"Resource","age":3,"interest":["Other dogs"]},,"Indy":{"name":"Indy","age":2,"interest":["Butter"]},"Kira":{"name":"Kira","age":8,"interest":["Rubs"]}} | 
De volgende toObject functie met de derde parameter biedt dezelfde uitvoer.
output dogsObject object = toObject(dogs, entry => entry.name, entry => entry)
In het volgende voorbeeld ziet u hoe u de toObject functie gebruikt met drie parameters.
var dogs = [
  {
    name: 'Evie'
    properties: {
      age: 5
      interests: [ 'Ball', 'Frisbee' ]
    }
  }
  {
    name: 'Casper'
    properties: {
      age: 3
      interests: [ 'Other dogs' ]
    }
  }
  {
    name: 'Indy'
    properties: {
      age: 2
      interests: [ 'Butter' ]
    }
  }
  {
    name: 'Kira'
    properties: {
      age: 8
      interests: [ 'Rubs' ]
    }
  }
]
output dogsObject object = toObject(dogs, entry => entry.name, entry => entry.properties)
In het voorgaande voorbeeld wordt een object gegenereerd op basis van een matrix.
| Name | Type | Weergegeven als | 
|---|---|---|
| dogsObject | Object | {"Evie":{"age":5,"interest":["Ball","Frisbee"]},"Neerkom":{"age":3,"interests":["Other dogs"]},"Indy":{"age":2,"interest":["Butter"]},"Kira":{"age":8,"interest":["Rubs"]}} | 
Volgende stappen
- Zie Bicep-functies : matrices voor meer aan matrices gerelateerde Bicep-functies.