Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v19.8
collection.reduce( )

collection.reduce( ) 


 

collection.reduce ( MethodenName {; InitWert}{; param}{; param2 ; ... ; paramN} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
MethodenName  Text in Name der Methode zum Bearbeiten von Collection Elementen
InitWert  Text, Zahl, Objekt, Collection, Datum, Boolean in Wert zum Verwenden als erstes Argument für den ersten Aufruf von MethodenName
param  Ausdruck in Parameter für MethodenName
Funktionsergebnis  Text, Zahl, Objekt, Collection, Datum, Boolean in Ergebnis des Akkumulatorwerts

Die Funktion collection.reduce( ) wendet die Callback Funktion MethodenName auf einen Akkumulator und jedes Element in der Collection an (von links nach rechts), um ihn auf einen einzigen Wert zu reduzieren.

Hinweis: Diese Funktion ändert nicht die ursprüngliche Collection.

In MethodenName übergeben Sie den Namen der Methode zum Bewerten der Collection Elemente, zusammen mit den Parametern in param (optional). MethodenName nimmt jedes Collection Element und führt jede gewünschte Operation durch, um das Ergebnis in $1.accumulator zu akkumulieren, das in $1.value zurückgegeben wird.

In initWert können Sie den Wert zum Initialisieren des Akkumulators übergeben. Ohne diesen Parameter startet $1.accumulator mit Undefiniert.

MethodenName empfängt folgende Parameter:

  • in $1.value: Elementwert zum Bearbeiten
  • in $2: param
  • in $N...: param2...paramN

MethodenName setzt folgende Parameter:

  • $1.accumulator: Wert, der durch die Funktion geändert werden soll und durch initWert initialisiert wird.
  • $1.stop (boolean, optional): wahr, um Aufruf der Methode zu stoppen. Der zurückgegebene Wert ist der letzte bewertete Wert.

 C_COLLECTION($c)
 $c:=New collection(5;3;5;1;3;4;4;6;2;2)
 $r:=$c.reduce("Multiply";1) //gibt 86400 zurück

Der Code für die Methode Multiply lautet:

 If(Value type($1.value)=Is real)
    $1.accumulator:=$1.accumulator*$1.value
 End if

Mehrere Collection Elemente auf ein einziges Element reduzieren:

 C_COLLECTION($c;$r)
 $c:=New collection
 $c.push(New collection(0;1))
 $c.push(New collection(2;3))
 $c.push(New collection(4;5))
 $c.push(New collection(6;7))
 $r:=$c.reduce("Flatten") //$r=[0,1,2,3,4,5,6,7]

Der Code für die Methode Flatten lautet:

 If($1.accumulator=Null)
    $1.accumulator:=New collection
 End if
 $1.accumulator.combine($1.value)

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Collections
Nummer: 705248

Dieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v16 R6

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v19)
4D Programmiersprache ( 4D v19.1)
4D Programmiersprache ( 4D v19.4)
4D Programmiersprache ( 4D v19.5)
4D Programmiersprache ( 4D v19.6)
4D Programmiersprache ( 4D v19.7)
4D Programmiersprache ( 4D v19.8)