4D v17.4

collection.sort( )

Home

 
4D v17.4
collection.sort( )

collection.sort( )  


 

Die Funktion collection.sort( ) sortiert die Elemente der Collection und gibt auch die sortierte Collection zurück.

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

Wird collection.sort( ) ohne Parameter aufgerufen, werden nur skalare Werte (Zahl, Text, Datum, Boolean) sortiert. Elemente werden standardmäßig nach Typ und in autsteigender Reihenfolge sortiert.

Wollen Sie Collection Elemente in anderer Reihenfolge oder jeden Elementtyp sortieren, müssen Sie in MethodenName eine Vergleichsmethode einrichten, die zwei Werte vergleicht und wahr in $1.result zurückgibt, wenn der erste Wert niedriger als der zweite ist. Sie können bei Bedarf weitere Parameter übergeben:

  • MethodenName empfängt folgende Parameter:
    • $1 (object), where:
      • $1.value (beliebiger Typ): erster Elementwert zum Vergleichen
      • $1.value2 (beliebiger Typ): zweiter Elementwert zum Vergleichen
    • $2...$N (beliebiger Typ): extra Parameter
  • MethodenName setzt folgende Parameter:
    • $1.result (boolean): wahr wenn $1.value < $1.value2, sonst falsch

Enthält die Collection Elemente mit unterschiedlichen Typen, werden sie erst nach Typ gruppiert und anschließend sortiert. Typen werden in folgender Reihenfolge zurückgegeben:

  1. Null
  2. Boolean
  3. String
  4. Zahl
  5. Objekt
  6. Collection
  7. Datum

 C_COLLECTION($col)
 $col:=New collection("Tom";5;"Mary";3;"Henry";1;"Jane";4;"Artie";6;"Chip";2)
 $col2:=$col.sort() // $col2=["Artie","Chip","Henry","Jane","Mary","Tom",1,2,3,4,5,6]
  // $col=["Artie","Chip","Henry","Jane","Mary","Tom",1,2,3,4,5,6]

 C_COLLECTION($col)
 $col:=New collection(10;20)
 $col2:=$col.push(5;3;1;4;6;2).sort() //$col2=[1,2,3,4,5,6,10,20]

 C_COLLECTION($col)
 $col:=New collection(33;4;66;1111;222)
 $col2:=$col.sort() //Sortierung nach Zahlen: [4,33,66,222,1111]
 $col3:=$col.sort("numberOrder") //Sortierung nach Alphabet: [1111,222,33,4,66]

  //Projektmethode numberOrder
 C_OBJECT($1)
 $1.result:=String($1.value)<String($1.value2)



Siehe auch 

collection.orderBy( )
collection.orderByMethod( )

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Collections

Dieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v17)
4D Programmiersprache ( 4D v17.1)
4D Programmiersprache ( 4D v17.2)
4D Programmiersprache ( 4D v17.3)
4D Programmiersprache ( 4D v17.4)