Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.orderByMethod( )
|
collection.orderByMethod ( nomeMet {; extraParam}{; extraParam2 ; ... ; extraParamN} ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
nomeMet | Texto |
![]() |
Nome do método usado para especificar a ordenação | |||||
extraParam | Expression |
![]() |
Parâmetros para o método | |||||
Resultado | Collection |
![]() |
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.
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)
Produto: 4D
Tema: Coleções
Número
705253
Criado por: 4D v16 R6
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)