Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v19.8
collection.orderByMethod( )

collection.orderByMethod( ) 


 

collection.orderByMethod ( nomMet {; extraParam}{; extraParam2 ; ... ; extraParamN} ) -> Resultado 
Parámetro Tipo   Descripción
nomMet  Texto in Nombre del método utilizado para ordenar la colección
extraParam  Expresión in Parámetro(s) para el método
Resultado  Collection in Copia ordenada de la colección (copia superficial)

El método collection.orderByMethod( ) devuelve una nueva colección que contiene todos los elementos de la colección en el orden definido por el método nomMet.

Este método devuelve una copia superficial, lo que significa que los objetos o colecciones en ambas colecciones comparten la misma referencia. Si la colección original es una colección compartida, la colección devuelta también es una colección compartida.

Nota: este método no modifica la colección original.

En nomMet, pase un método de comparación que compare dos valores y devuelva true en $1.result si el primer valor es menor que el segundo valor. Puede ofrecer parámetros adicionales a nomMet si es necesario.

  • nomMet recibirá los siguientes parámetros:
    • $1 (objeto), donde:
      • $1.value (todo tipo): valor del primer elemento a comparar
      • $1.value2 (todo tipo): valor del segundo elemento a comparar
    • $2...$N (todo tipo): parámetros adicionales
  • nomMet define el siguiente parámetro:
    • $1.result (booleano): true si $1.value < $1.value2, de lo contrario false

Usted desea ordenar una colección de cadenas en orden numérico en lugar de orden alfabético:

 C_COLLECTION($c)
 $c:=New collection
 $c.push("33";"4";"1111";"222")
 $c2:=$c.orderBy() //$c2=["1111","222","33","4"], alphabetical order
 $c3:=$c.orderByMethod("NumAscending") // $c3=["4","33","222","1111"]

Aquí está el código para NumAscending:

 $1.result:=Num($1.value)<Num($1.value2)

Usted desea ordenar una colección de cadenas por su longitud:

 C_COLLECTION($fruits)
 $fruits:=New collection("Orange";"Apple";"Grape";"pear";"Banana";"fig";"Blackberry";"Passion fruit")
 $c2:=$fruits.orderByMethod("WordLength")
  //$c2=[Passion fruit,Blackberry,Orange,Banana,Apple,Grape,pear,fig]

Aquí está el código para WordLength:

 $1.result:=Length(String($1.value))>Length(String($1.value2))

Quiere ordenar una colección por código de caracteres o lenguaje:

 var $strings1;$strings2 : Collection
 $strings1:=New collection("Alpha";"Charlie";"alpha";"bravo";"Bravo";"charlie")
 
  //utilizando el código de caracteres
 $strings2:=$strings1.orderByMethod("sortCollection";sk character codes)
  // resultado: ["Alpha","Bravo","Charlie","alpha","bravo","charlie"]
 
  //utilizando el lenguaje
 $strings2:=$string1s.orderByMethod("sortCollection";sk strict)
  // resultado: ["alpha","Alpha","bravo","Bravo","charlie","Charlie"]

 

El método sortCollection:

 var$1Object
 var$2Integer // opción de ordenación
 
 $1.result:=(Compare strings($1.value;$1.value2;$2)<0)



Ver también 

collection.orderBy( )
collection.sort( )

 
PROPIEDADES 

Producto: 4D
Tema: Colecciones
Número 705253

This command can be run in preemptive processes

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Creado por: 4D v16 R6

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)
Manual de lenguaje 4D ( 4D v19.4)
Manual de lenguaje 4D ( 4D v19.5)
Manual de lenguaje 4D ( 4D v19.6)
Manual de lenguaje 4D ( 4D v19.7)
Manual de lenguaje 4D ( 4D v19.8)