$collection.transpose()
$collection.transpose($fun)
Transponiert eine Sammlung von Listen, indem Elemente an entsprechenden Positionen kombiniert werden.
Die Funktion nimmt eine Sammlung entgegen, die eine beliebige Anzahl von Listen enthalten kann, und kombiniert deren Elemente an entsprechenden Positionen. Wenn eine Transpositionsfunktionfunbereitgestellt wird, wird diese zur Kombination der Elemente verwendet. Andernfalls werden Tupel der kombinierten Elemente zurückgegeben.
Wenn die beiden Listen unterschiedliche Längen haben, wird die kürzere Liste mit null-Werten aufgefüllt.
| Name | Typ | Beschreibung | Pflicht | Default |
|---|---|---|---|---|
| collection | Aufzählung | Eine Sammlung, die eine beliebige Anzahl von Listen enthält. Die Listen werden elementweise kombiniert. Wenn nur eine Liste vorhanden ist, wird sie unverändert verarbeitet. Leere Sammlungen ergeben ein leeres Ergebnis. | ja | |
| fun | Funktion |
Eine optionale Funktion, die zur Kombination der entsprechenden Elemente aus den beiden Listen verwendet wird. Die Funktion erhält so viele Parameter, wie Listen in der Sammlung enthalten sind. Wenn nicht angegeben, werden Tupel-Listen erstellt. |
nein |
Tupel-Erstellung |
Typ: List
Eine Liste der kombinierten Elemente. Wenn keine Transpositionsfunktion angegeben wurde, enthält die Liste Tupel in Form von Listen. Jede Tupel-Liste enthält die Elemente an der entsprechenden Position aus den Eingabelisten. Wenn eine Funktion angegeben wurde, enthält die Liste die Ergebnisse dieser Funktion für jedes Elementtupel. Die Länge des Ergebnisses entspricht der längsten Eingabeliste.
list(
list("A", "B", "C"),
list(1, 2, 3)
).transpose()
Ausgabe: Eine Liste von Tupel-Objekten: [["A", 1], ["B", 2], ["C", 3]]
list(
list("Hallo", "Guten", "Auf"),
list("Welt", "Tag", "Wiedersehen"),
list(null, "!", "?")
).transpose(first -> second -> third -> $first + " " + $second + $third)
Ausgabe: Eine Liste kombinierter Strings: [Hallo Welt, Guten Tag!, Auf Wiedersehen?]
list(
list(10, 20, 30, 40),
list(1, 2, 3)
).transpose(a -> b -> if($b != null, $a + $b, $a))
Ausgabe: Eine Liste mit Summen: [11, 22, 33, 40]. Das vierte Element bleibt unverändert, da die zweite Liste kürzer ist.