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.orderByMethod( )

collection.orderByMethod( ) 


 

collection.orderByMethod ( nomeMet {; extraParam}{; extraParam2 ; ... ; extraParamN} ) -> Resultado 
Parâmetro Tipo   Descrição
nomeMet  Texto in Nome do método usado para especificar a ordenação
extraParam  Expression in Parâmetros para o método
Resultado  Collection in Cópia ordenada da coleção (cópia superficial da estrutura de dados)

O método collection.orderByMethod( ) devolvido uma nova coleção que contém todos os elementos da coleção na ordem definida pelo método nomMet.

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. Se a coleção original for uma coleção compartida, a coleção devolvida também é uma coleção compartida.

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

Em nomMet, passe um método de comparação que compara dois valores e devolve 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 comparar
      • $1.value2 (todo tipo): valor do segundo elemento a comparar
    • $2...$N (todo tipo): parâmetros adicionais
  • nomMet define o parâmetro abaixo:
    • $1.result (booleano): true si $1.value < $1.value2, do contrário false

Se quiser ordenar uma coleção de strings em ordem numérica ao invés de ordem alfabética:

 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"]

Aqui está o código para NumAscending:

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

Se quiser ordenar uma coleção de strings por sua longitude:

 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]

Aqui está o código para WordLength:

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

Se quiser ordenar uma coleção por código de caractere ou linguagem:

 var $strings1;$strings2 : Collection
 $strings1:=New collection("Alpha";"Charlie";"alpha";"bravo";"Bravo";"charlie")
 
  //usar o código caractere
 $strings2:=$strings1.orderByMethod("sortCollection";sk character codes)
  // resultado: ["Alpha","Bravo","Charlie","alpha","bravo","charlie"]
 
  //usar a linguagem
 $strings2:=$string1s.orderByMethod("sortCollection";sk strict)
  // resultado: ["alpha","Alpha","bravo","Bravo","charlie","Charlie"]

 

O método sortCollection:

 var$1Object
 var$2Integer // opção ordenar
 
 $1.result:=(Compare strings($1.value;$1.value2;$2)<0)



Ver também 

collection.orderBy( )
collection.sort( )

 
PROPRIEDADES 

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

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)