Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v19.8
collection.filter( )

collection.filter( ) 


 

collection.filter ( nomMéthode {; param}{; param2 ; ... ; paramN} ) -> Résultat 
Paramètre Type   Description
nomMéthode  Texte in Nom de la méthode à appeler pour filtrer la collection
param  Expression in Paramètre(s) à passer à nomMéthode
Résultat  Collection in Nouvelle collection contenant les éléments filtrés (shallow copy)

La méthode collection.filter( ) retourne une nouvelle collection contenant tous les éléments de la collection d'origine pour lesquels le résultat de la méthode nomMéthode est vrai. Cette méthode retourne une "shallow copy" (copie superficielle), ce qui signifie que les objets ou les collections présents dans les deux collections partagent la même référence.
Si la collection d'origine est une collection partagée, la collection retournée est également une collection partagée.

Note : Cette méthode ne modifie pas la collection d'origine.

Dans nomMéthode, passez le nom de la méthode à utiliser pour évaluer les éléments de la collection, ainsi que son ou ses paramètre(s) dans param (optionnel). nomMéthode peut effectuer tout test, avec ou sans paramètres et doit retourner true dans $1.result pour chaque élément ayant satisfait aux conditions du test et donc, à inclure dans la nouvelle collection.

nomMéthode reçoit les paramètres suivants :

  • dans $1.value : valeur de l'élément à filtrer
  • dans $2 : param
  • dans $N... : param2...paramN

nomMéthode doit fixer le(s) paramètre(s) suivant(s) :

  • $1.result (booléen) : true si l'élément satisfait à la condition de filtrage et doit être conservé.
  • $1.stop (booléen, optionnel) : true pour stopper le rétroappel de méthode. La valeur retournée est la dernière calculée.

Vous voulez obtenir la collection des éléments de type texte dont la longueur est inférieure à 6 :

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

Le code de la méthode LengthLessThan est le suivant :

 C_OBJET($1)
 C_ENTIER LONG($2)
 Si(Type valeur($1.value)=Est un texte)
    $1.result:=(Longueur($1.value))<$2
 Fin de si

Vous voulez filtrer les éléments de la collection en fonction de leur type :

 C_COLLECTION($c)
 $c:=Creer collection(5;3;1;4;6;2)
 $c.push(Creer objet("name";"Cleveland";"zc";35049))
 $c.push(Creer objet("name";"Blountsville";"zc";35031))
 $c2:=$c.filter("TypeLookUp";Est un numérique// $c2=[5,3,1,4,6,2]
 $c3:=$c.filter("TypeLookUp";Est un objet)
  // $c3=[{name:Cleveland,zc:35049},{name:Blountsville,zc:35031}]

Le code de TypeLookUp est :

 C_OBJET($1)
 C_ENTIER LONG($2)
 Si(Type valeur($1.value)=$2)
    $1.result:=Vrai
 Fin de si

 
PROPRIÉTÉS 

Produit : 4D
Thème : Collections
Numéro : 705249
Nom intl. : collection.filter( )

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v16 R6

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v19)
4D - Langage ( 4D v19.1)
4D - Langage ( 4D v19.4)
4D - Langage ( 4D v19.5)
4D - Langage ( 4D v19.6)
4D - Langage ( 4D v19.7)
4D - Langage ( 4D v19.8)