4D v18

collection.every( )

Accueil

 
4D v18
collection.every( )

collection.every( )  


 

La méthode collection.every( ) retourne vrai si tous les éléments de la collection ont été évalués à vrai par le test implémenté dans la méthode nomMéthode passée en paramètre.

Par défaut, collection.every( ) évalue l'ensemble de la collection. Optionnellement, vous pouvez passer le numéro de l'élément auquel démarrer l'évaluation dans positionDépart.

  • Si positionDépart >= taille de la collection, collection.every( ) retourne false (la collection n'est pas évaluée).
  • Si positionDépart < 0, le paramètre est recalculé comme positionDépart:=positionDépart+length (la fin de la collection est considérée comme point de départ du calcul de la position).
  • Si positionDépart = 0, l'ensemble de la collection est évalué (défaut).

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. La méthode reçoit un paramètre de type Objet dans $1 et doit passer true dans $1.result pour chaque élément ayant satisfait aux conditions du test.

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

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

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

  • $1.result (booléen) : true si la valeur de l'élément est évaluée avec succès, false sinon.
  • $1.stop (booléen, optionnel) : true pour stopper le rétroappel de méthode. La valeur retournée est la dernière calculée.

Dans tous les cas, au premier élément retournant false dans $1.result, la méthode collection.every( ) cesse d'appeler nomMéthode et retourne Faux.

 C_COLLECTION($c)
 $c:=New collection
 $c.push(5;3;1;4;6;2)
 $b:=$c.every("NumberGreaterThan0") //retourne vrai
 $c.push(-1)
 $b:=$c.every("NumberGreaterThan0") //retourne faux

Avec la méthode NumberGreaterThan0 suivante :

 $1.result:=$1.value>0

Cet exemple vérifie que tous les éléments de la collection sont de type réel :

 C_COLLECTION($c)
 $c:=New collection
 $c.push(5;3;1;4;6;2)
 $b:=$c.every("TypeLookUp";Is real//$b=vrai
 $c:=$c.push(New object("name";"Cleveland";"zc";35049))
 $c:=$c.push(New object("name";"Blountsville";"zc";35031))
 $b:=$c.every("TypeLookUp";Is real//$b=faux

Avec la méthode TypeLookUp suivante :

 C_OBJECT($1)
 C_LONGINT($2)
 If(Value type($1.value)=$2)
    $1.result:=True
 End if



Voir aussi  

collection.some( )

 
PROPRIÉTÉS 

Produit : 4D
Thème : Collections

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

 
PAGE CONTENTS 
 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v18)