​Syntax

	$collection.transpose()

$collection.transpose($fun)

Beschreibung

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.

Parameter

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

Rückgabewert

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.

Beispiele

Einfache Transposition ohne Funktion

	list(
    list("A", "B", "C"),
    list(1, 2, 3)
).transpose()

Ausgabe: Eine Liste von Tupel-Objekten: [["A", 1], ["B", 2], ["C", 3]]

Transposition mit Kombinationsfunktion

	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?]

Transposition mit unterschiedlichen Listenlängen

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.