Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.orderBy( )
|
collection.orderBy ( {criterio} ) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
criterio | Texto, Collection, Entero largo |
![]() |
Texto: ruta(s) de propiedad(es) para ordenar la colección Colección: colección de objetos de criterio Entero largo: ck ascending o ck descending (valores escalares) |
|||||
Resultado | Collection |
![]() |
Copia ordenada de la colección (copia superficial) | |||||
El método collection.orderBy( ) devuelve una nueva colección que contiene todos los elementos de la colección en el orden especificado por criterio.
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.
Si omite el parámetro criterio, el método ordena los valores escalares en la colección en orden ascendente (otros tipos de elementos como objetos o colecciones se devuelven desordenados). Puede modificar este orden automático pasando las constantes ck ascending o ck descending en el parámetro criterio (ver abajo).
También puede pasar un parámetro criterio para definir cómo deben ordenarse los elementos de la colección. Tres sintaxis son compatibles para este parámetro:
Constante | Tipo | Valor | Comentario |
ck ascending | Entero largo | 0 | Los elementos se ordenan de forma ascendente (predeterminado) |
ck descending | Entero largo | 1 | Los elementos se ordenan en orden descendente |
Si la colección contiene elementos de diferentes tipos, primero se agrupan por tipo y se ordenan después. Los tipos se devuelven en el siguiente orden:
Ordenar una colección de números en orden ascendente y descendente:
C_COLLECTION($c;$c2;$3)
$c:=New collection
For($vCounter;1;10)
$c.push(Random)
End for
$c2:=$c.orderBy(ck ascending)
$c3:=$c.orderBy(ck descending)
Ordenar una colección de objetos basada en una fórmula de texto con nombres de propiedad:
C_COLLECTION($c)
$c:=New collection
For($vCounter;1;10)
$c.push(New object("id";$vCounter;"value";Random))
End for
$c2:=$c.orderBy("value desc")
$c2:=$c.orderBy("value desc, id")
$c2:=$c.orderBy("value desc, id asc")
Ordenar una colección de objetos con una ruta de propiedad:
C_COLLECTION($c)
$c:=New collection
$c.push(New object("name";"Cleveland";"phones";New object("p1";"01";"p2";"02")))
$c.push(New object("name";"Blountsville";"phones";New object("p1";"00";"p2";"03")))
$c2:=$c.orderBy("phones.p1 asc")
Ordenar una colección de objetos utilizando una colección de objetos criterio:
C_COLLECTION($crit;$c)
$crit:=New collection
$c:=New collection
For($vCounter;1;10)
$c.push(New object("id";$vCounter;"value";Random))
End for
$crit.push(New object("propertyPath";"value";"descending";True))
$crit.push(New object("propertyPath";"id";"descending";False))
$c2:=$c.orderBy($crit)
Ordenar con una ruta de propiedad:
C_COLLECTION($crit;$c)
$c:=New collection
$c.push(New object("name";"Cleveland";"phones";New object("p1";"01";"p2";"02")))
$c.push(New object("name";"Blountsville";"phones";New object("p1";"00";"p2";"03")))
$crit:=New collection(New object("propertyPath";"phones.p2";"descending";True))
$c2:=$c.orderBy($crit)
Producto: 4D
Tema: Colecciones
Número
905251
Creado por: 4D v16 R6
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)