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

Home

 
4D v19.8
collection.filter( )

collection.filter( ) 


 

collection.filter ( MethodenName {; param}{; param2 ; ... ; paramN} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
MethodenName  Text in Name der Methode zum Filtern der Collection
param  Ausdruck in Parameter für die Methode
Funktionsergebnis  Collection in Neue Collection mit gefilterten Elementen (flache Kopie)

Die Funktion collection.filter( ) gibt eine neue Collection mit den Elementen der ursprünglichen Collection zurück, für die das Ergebnis von MethodenName wahr ist. Diese Funktion gibt eine flache Kopie zurück, d.h. Objekte oder Collections in beiden Collections nutzen dieselbe Referenz. Ist die ursprüngliche Collection eine shared collection, ist die zurückgegebene Collection ebenfalls eine shared collection.

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 kann das Filtern mit oder ohne Parameter durchführen und muss in $1.result wahr für jedes zutreffende Element zurückgeben und so in die neue Collection setzen.

MethodenName empfängt folgende Parameter:

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

MethodenName setzt folgende Parameter:

  • $1.result (boolean): wahr, wenn der Elementwert zur Filterbedingung passt und behalten werden soll.
  • $1.stop (boolean, optional): wahr, um Aufruf der Methode zu stoppen. Der zurückgegebene Wert ist der letzte bewertete Wert.

Die Collection von Textelementen mit einer Länge kleiner als 6 erhalten:

 C_COLLECTION($col)
 C_COLLECTION($colNew)
 $col:=New collection("hello";"world";"red horse";66;"tim";"san jose";"miami")
 $colNew:=$col.filter("LengthLessThan";6)
  //$colNew=["hello","world","tim","miami"]

Der Code für die Methode LengthLessThan lautet:

 C_OBJECT($1)
 C_LONGINT($2)
 If(Value type($1.value)=Is text)
    $1.result:=(Length($1.value))<$2
 End if

Elemente nach ihrem Wertetyp filtern:

 C_COLLECTION($c)
 $c:=New collection(5;3;1;4;6;2)
 $c.push(New object("name";"Cleveland";"zc";35049))
 $c.push(New object("name";"Blountsville";"zc";35031))
 $c2:=$c.filter("TypeLookUp";Is real// $c2=[5,3,1,4,6,2]
 $c3:=$c.filter("TypeLookUp";Is object)
  // $c3=[{name:Cleveland,zc:35049},{name:Blountsville,zc:35031}]

Der Code für die Methode TypeLookUp lautet:

 C_OBJECT($1)
 C_LONGINT($2)
 If(OB Get type($1;"value")=$2)
    $1.result:=True
 End if

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Collections
Nummer: 705249

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)