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.reduce( )

collection.reduce( ) 


 

collection.reduce ( nomMéthode {; valeurInit}{; param}{; param2 ; ... ; paramN} ) -> Résultat 
Paramètre Type   Description
nomMéthode  Texte in Nom de la méthode à appeler pour traiter les éléments de la collection
valeurInit  Texte, Numérique, Objet, Collection, Date, Booléen in Valeur à utiliser comme premier argument lors du premier appel de nomMéthode
param  Expression in Paramètre(s) à passer à nomMéthode
Résultat  Texte, Numérique, Objet, Collection, Date, Booléen in Résultat de la valeur de l'accumulateur

La méthode collection.reduce( ) applique la méthode de rétro-appel nomMéthode à un accumulateur et à chaque élément de la collection (de gauche à droite) afin de la réduire à une seule valeur.

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 traite successivement chaque élément de la collection et accumule le résultat dans $1.accumulator, qui est retourné dans $1.value.

Vous pouvez passer la valeur d'initialisation de l'accumulateur dans valeurInit. Si elle est omise, $1.accumulator débute avec la valeur Indéfini.

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.accumulator : valeur à modifier par la méthode et qui est initialisée par valeurInit.
  • $1.stop (booléen, optionnel) : true pour stopper le rétroappel de méthode. La valeur retournée est la dernière calculée.

 C_COLLECTION($c)
 $c:=Creer collection(5;3;5;1;3;4;4;6;2;2)
 $r:=$c.reduce("Multiply";1) //retourne 86400

La méthode Multiply est la suivante :

 Si(Type valeur($1.value)=Est un numérique)
    $1.accumulator:=$1.accumulator*$1.value
 Fin de si

Cet exemple réduit une collection de collections en une seule :

 C_COLLECTION($c;$r)
 $c:=Creer collection
 $c.push(Creer collection(0;1))
 $c.push(Creer collection(2;3))
 $c.push(Creer collection(4;5))
 $c.push(Creer collection(6;7))
 $r:=$c.reduce("Flatten") //$r=[0,1,2,3,4,5,6,7]

La méthode Flatten est la suivante :

 Si($1.accumulator=Null)
    $1.accumulator:=Creer collection
 Fin de si
 $1.accumulator.combine($1.value)

 
PROPRIÉTÉS 

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

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)