Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v19.8
collection.sort( )

collection.sort( ) 


 

collection.sort ( {nomeMet {; extraParam}{; extraParam2 ; ... ; extraParamN}} ) -> Resultado 
Parâmetro Tipo   Descrição
nomeMet  Texto in Nome do método usado para especificar a ordem de classificação
extraParam  Expression in Parâmetros para o método
Resultado  Collection in Coleção original ordenada

O método collection.sort( ) ordena os elementos da coleção e devolve uma nova coleção ordenada. Este método devolve uma cópia superficial, o que significa que os objetos ou coleções em ambas coleções compartem a mesma referência.

Nota: este método modifica a coleção original.

Se for chamada a collection.sort( ) sem parâmetros, só são classificados os valores escalares (número, texto, data, booleanos). Os elementos são ordenados como padrão em ordem ascendente, de acordo com seu tipo.

Se quiser ordenar os elementos da coleção em outra ordem ou ordenar qualquer tipo de elemento, deve oferecer em nomMet um método de comparação que compare dois valores e devolva true em $1.result se o primeiro valor for menor que o segundo valor. Pode oferecer parâmetros adicionais a nomMet se for necessário.

  • nomMet receberá os parâmetros abaixo:
    • $1 (objeto), onde:
      • $1.value (todo tipo): valor do primeiro elemento a ser comparado
      • $1.value2 (todo tipo): valor do segundo elemento a ser comparado
    • $2...$N (todo tipo): parâmetros adicionais
  • nomMet define o parâmetro abaixo:
    • $1.result (booleano): true se $1.value < $1.value2, do contrário false       

Se a coleção contiver elementos de diferentes tipos, primeiro são agrupados por tipo e são ordenados depois. Os tipos são devolvidos na ordem abaixo:

  1. null
  2. booleanos
  3. strings
  4. números
  5. objetos
  6. coleções
  7. datas

 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() //ordem numérica: [4,33,66,222,1111]
 $col3:=$col.sort("numberOrder") //ordem alfabética: [1111,222,33,4,66]

  //Método projeto numberOrder
 C_OBJECT($1)
 $1.result:=String($1.value)<String($1.value2)



Ver também 

collection.orderBy( )
collection.orderByMethod( )

 
PROPRIEDADES 

Produto: 4D
Tema: Coleções
Número 805259

This command can be run in preemptive processes

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v16 R6

 
ARTICLE USAGE

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