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

collection.find( ) 


 

collection.find ( {posInic ;} nomeMet {; param {; param2 ; ... ; paramN}} ) -> Resultado 
Parâmetro Tipo   Descrição
posInic  Inteiro longo in Número do elemento de início da pesquisa
nomeMet  Texto in Nome da função a chamar
param  Expression in Parâmetro a passar ao nomeMet
Resultado  in Primeiro valor encontrado, ou Undefined se não for encontrado

O método collection.find( ) devolve o primeiro valor na coleção para o qual nomMet, aplicado em cada elemento, devolve true.

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

De forma pré-determinada, collection.find( ) busca em toda a coleção. Opcionalmente, pode passar em posicIni o índice do elemento desde o qual começar a pesquisa.

  • Se posicIni >= longitude da coleção, se devolve -1, e a pesquisa não é efetuada.
  • Se posicIni < 0, se considera como o ponto de início do cálculo da posição (posicIni :=posicIni +length).
    Nota: mesmo se posicIni for negativo, a coleção continua buscando de esquerda a direita.
  • Se posicIni = 0, se busca em toda a coleção (pré-determinado).

Em nomMet, passe o nome do método a usar para avaliar os elementos da coleção, junto com seus parâmetros em param (opcional). nomMet pode realizar qualquer teste, com ou sem os parâmetros. Este método recebe um parâmetro Object em $1 e deve definir $1.result como true para o primeiro elemento que cumpra a condição.

nomMet recebe os parâmetros abaixo:

  • em $1.value: valor do elemento a avaliar
  • em $2: param
  • em $N...: param2...paramN

nomMet define os parâmetros abaixo:

  • $1.result (booleano): true se o valor do elemento coincide com a condição de pesquisa.
  • $1.stop (booleano, opcional): true para deter a retrochamada do método. O valor devolvido for o último calculado.

Se quiser obter o primeiro elemento com uma longitude inferior a 5:

 C_COLLECTION($col)
 $col:=New collection("hello";"world";4;"red horse";"tim";"san jose")
 $value:=$col.find("LengthLessThan";5) //$value="tim"

O código para o método LengthLessThan é:

 C_OBJECT($1)
 C_LONGINT($2)
 If(Value type($1.value)=Is text)
    $1.result:=(Length($1.value))<$2
 End if

Se quiser encontrar o nome de uma cidade dentro de uma coleção:

 C_COLLECTION($c)
 $c:=New collection
 $c.push(New object("name";"Cleveland";"zc";35049))
 $c.push(New object("name";"Blountsville";"zc";35031))
 $c.push(New object("name";"Adger";"zc";35006))
 $c.push(New object("name";"Clanton";"zc";35046))
 $c.push(New object("name";"Clanton";"zc";35045))
 $c2:=$c.find("FindCity";"Clanton") //$c2={name:Clanton,zc:35046}

O código para o método é FindCity:

 C_OBJECT($1)
 C_TEXT($2)
 $1.result:=$1.value.name=$2



Ver também 

collection.findIndex( )

 
PROPRIEDADES 

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

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)