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.reduce( )
|
collection.reduce ( nomMéthode {; valeurInit}{; param}{; param2 ; ... ; paramN} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
nomMéthode | Texte |
![]() |
Nom de la méthode à appeler pour traiter les éléments de la collection | |||||
valeurInit | Texte, Numérique, Objet, Collection, Date, Booléen |
![]() |
Valeur à utiliser comme premier argument lors du premier appel de nomMéthode | |||||
param | Expression |
![]() |
Paramètre(s) à passer à nomMéthode | |||||
Résultat | Texte, Numérique, Objet, Collection, Date, Booléen |
![]() |
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 :
nomMéthode doit fixer le(s) paramètre(s) suivant(s) :
C_COLLECTION($c)
$c:=New 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 :
If(Value type($1.value)=Is real)
$1.accumulator:=$1.accumulator*$1.value
End if
Cet exemple réduit une collection de collections en une seule :
C_COLLECTION($c;$r)
$c:=New collection
$c.push(New collection(0;1))
$c.push(New collection(2;3))
$c.push(New collection(4;5))
$c.push(New collection(6;7))
$r:=$c.reduce("Flatten") //$r=[0,1,2,3,4,5,6,7]
La méthode Flatten est la suivante :
If($1.accumulator=Null)
$1.accumulator:=New collection
End if
$1.accumulator.combine($1.value)
Produit : 4D
Thème : Collections
Numéro :
705248
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)