Reduktion auf Index
Syntax
$list.indexReduce($index-fun, $unit, $reduce-fun)
Beschreibung
Erstellt ein Wörterbuch aus den Einträgen einer Liste. Die Schlüsselwerte werden über die Indizierungsfunktion aus Listenelementen berechnet. Ein Wert des resultierenden Wörterbuchs besteht aus der Reduktion aller Listenelemente, für die derselbe Schlüsselwert ausgerechnet wurde. Der erste Reduktionsschritt wird mit dem übergebenen neutralen Element und dem ersten Listenelement eines Schlüssels durchgeführt.
Wenn für die Listenelemente e1
, e5
und e7
der selbe Schlüsselwert k
ausgerechnet wurde, dann wird im resultierenden Wörterbuch unter dem Schlüssel k
der Wert $reduceFun($reduceFun($reduceFun($unit, e1), e5), e7)
gespeichert.
Parameter
Name | Typ | Beschreibung | Pflicht | Default |
---|---|---|---|---|
list | Menge | Eine Liste, aus der ein Wörterbuch generiert werden soll. | ja | |
index-fun | Funktion | Funktion, die ein Listenelement einen Schlüsselwert zuordnet. | ja | |
unit | Zahl/Zeichenkette | Neutrales Element der reduce-fun . |
ja | |
reduce-fun | Funktion | Funktion, die mehrere Listenwerte mit demselben Schlüsselwert auf ein Element reduziert. | ja |
Rückgabewert
Typ: Fachobjekt
Ein Wörterbuch mit allen Listenelementen, die gemäß der index-fun
und reduce-fun
Funktionen Schlüsselwerten zugeordnet wurden.
Beispiele
Anzahl von gleichen Listenelementen
{
list = list("Martin", "Tom", "Eric", "Martin", "Eric", "Lars", "Steven", "Steven", "Eric");
indexfun = string -> $string;
reducefun = subtotal -> listElem -> $subtotal + 1;
$list.indexReduce($indexfun, 0, $reducefun);
}
Ausgabe: Wöterbuch mit folgenden Werten:
{
Martin=2.0,
Tom=1.0,
Eric=3.0,
Lars=1.0,
Steven=2.0
}