4D v19

collection.find( )

Inicio

 
4D v19
collection.find( )

collection.find( )  


 

El método collection.find( ) devuelve el primer valor en la colección para el cual nomMet, aplicado en cada elemento, devuelve true.

Nota: este método no modifica la colección original.

De forma predetermina, collection.find( ) busca en toda la colección. Opcionalmente, puede pasar en posicIni el índice del elemento desde el cual comenzar la búsqueda.

  • Si posicIni >= longitud de la colección, se devuelve -1, y la búsqueda no se efectúa.
  • Si posicIni < 0, se considera como el punto de inicio del cálculo de la posición (posicIni :=posicIni +length).
    Nota: incluso si posicIni es negativo, la colección se sigue buscando de izquierda a derecha.
  • Si posicIni = 0, se busca en toda la colección (por defecto).

En nomMet, pase el nombre del método a usar para evaluar los elementos de la colección, junto con su(s) parámetro(s) en param (opcional). nomMet puede realizar cualquier prueba, con o sin el(los) parámetro(s). Este método recibe un parámetro Object en $1 y debe definir $1.result como true para el primer elemento que cumpla la condición.

nomMet recibe los siguientes parámetros:

  • en $1.value: valor del elemento a evaluar
  • en $2: param
  • en $N...: param2...paramN

nomMet define los siguientes parámetros:

  • $1.result (booleano): true si el valor del elemento coincide con la condición de búsqueda.
  • $1.stop (booleano, opcional): true para detener la retrollamada del método. El valor devuelto es el último calculado.

Usted desea obtener el primer elemento con una longitud inferior a 5:

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

El código para el método LengthLessThan es:

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

Usted desea encontrar el nombre de una ciudad dentro de una colección:

 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}

El código para el método es FindCity:

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



Ver también 

collection.findIndex( )

 
PROPIEDADES 

Producto: 4D
Tema: Colecciones

This command can be run in preemptive processes

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)