Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v19.8
collection.filter( )

collection.filter( ) 


 

collection.filter ( nomMet {; param}{; param2 ; ... ; paramN} ) -> Resultado 
Parámetro Tipo   Descripción
nomMet  Texto in Nombre de la función a llamar para filtrar la colección
param  Expresión in Parámetro(s) a pasar a nomMet
Resultado  Collection in Nueva colección que contiene elementos filtrados (copia superficial)

El método collection.filter( ) devuelve una nueva colección que contiene todos los elementos de la colección original para los cuales el resultado del método nomMet es true. Este método devuelve una copia superficial, lo que significa que los objetos o colecciones en ambas colecciones comparten la misma referencia. Si la colección original es una colección compartida, la colección devuelta también es una colección compartida.

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

En nomMet, pase el nombre del método a utilizar 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), y debe devolver true en $1.result para cada elemento que cumpla la condición y por lo tanto, para avanzar a la nueva colección.

nomMet recibe los siguientes parámetros:

  • en $1.value: valor del elemento a filtrar
  • 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 del filtro y debe mantenerse.
  • $1.stop (booleano, opcional): true para detener la retrollamada del método. El valor devuelto es el último calculado.

Desea obtener la colección de elementos de texto cuya longitud es menor que 6:

 C_COLLECTION($col)
 C_COLLECTION($colNew)
 $col:=New collection("hello";"world";"red horse";66;"tim";"san jose";"miami")
 $colNew:=$col.filter("LengthLessThan";6)
  //$colNew=["hello","world","tim","miami"]

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

Desea filtrar los elementos de acuerdo con su tipo de valor:

 C_COLLECTION($c)
 $c:=New collection(5;3;1;4;6;2)
 $c.push(New object("name";"Cleveland";"zc";35049))
 $c.push(New object("name";"Blountsville";"zc";35031))
 $c2:=$c.filter("TypeLookUp";Is real// $c2=[5,3,1,4,6,2]
 $c3:=$c.filter("TypeLookUp";Is object)
  // $c3=[{name:Cleveland,zc:35049},{name:Blountsville,zc:35031}]

El código para TypeLookUp es:

 C_OBJECT($1)
 C_LONGINT($2)
 If(OB Get type($1;"value")=$2)
    $1.result:=True
 End if

 
PROPIEDADES 

Producto: 4D
Tema: Colecciones
Número 705249

This command can be run in preemptive processes

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Creado por: 4D v16 R6

 
ARTICLE USAGE

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