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.
La méthode Multiply est la suivante :
Cet exemple réduit une collection de collections en une seule :
La méthode Flatten est la suivante :
Si($1.accumulator=Null)
$1.accumulator:=Creer collection
Fin de si
$1.accumulator.combine($1.value)