Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.filter( )
|
collection.filter ( nomMéthode {; param}{; param2 ; ... ; paramN} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
nomMéthode | Texte |
![]() |
Nom de la méthode à appeler pour filtrer la collection | |||||
param | Expression |
![]() |
Paramètre(s) à passer à nomMéthode | |||||
Résultat | Collection |
![]() |
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 :
nomMéthode doit fixer le(s) paramètre(s) suivant(s) :
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
Produit : 4D
Thème : Collections
Numéro :
705249
Nom intl. : collection.filter( )
Créé : 4D v16 R6
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)