Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.reduce( )
|
collection.reduce ( nomMet {; ValorInicial}{; param}{; param2 ; ... ; paramN} ) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
nomMet | Texto |
![]() |
Nombre de la función a llamar para procesar los elementos de la colección | |||||
ValorInicial | Texto, Número, Objeto, Collection, Fecha, Booleano |
![]() |
Valor a utilizar como primer argumento para la primera llamada de nomMet | |||||
param | Expresión |
![]() |
Parámetro(s) a pasar a nomMet | |||||
Resultado | Texto, Número, Objeto, Collection, Fecha, Booleano |
![]() |
Resultado del valor acumulador | |||||
El método collection.reduce( ) aplica el método de retrollamada nomMet contra un acumulador y cada elemento de la colección (de izquierda a derecha) para reducirlo a un único valor.
Nota: este método no modifica la colección original.
En nomMet, pase el nombre del método a utilizar para evaluar los elementos de la colección, junto con su(s) parámetro(s) en param (opcional). nomMet toma cada elemento de colección y realiza toda operación deseada para acumular el resultado en $1.accumulator, que se devuelve en $1.value.
Puede pasar el valor para inicializar el acumulador en valorInicial. Si se omite, $1.accumulator comienza con Undefined.
nomMet recibe los siguientes parámetros:
nomMet define los siguientes parámetros:
C_COLLECTION($c)
$c:=New collection(5;3;5;1;3;4;4;6;2;2)
$r:=$c.reduce("Multiply";1) //returns 86400
Con el siguiente método Multiply:
If(Value type($1.value)=Is real)
$1.accumulator:=$1.accumulator*$1.value
End if
Este ejemplo permite reducir varios elementos de colección a uno solo:
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]
Con el siguiente método Flatten:
If($1.accumulator=Null)
$1.accumulator:=New collection
End if
$1.accumulator.combine($1.value)
Producto: 4D
Tema: Colecciones
Número
705248
Creado por: 4D v16 R6
Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)
Manual de lenguaje 4D ( 4D v19.4)
Manual de lenguaje 4D ( 4D v19.5)
Manual de lenguaje 4D ( 4D v19.6)
Manual de lenguaje 4D ( 4D v19.7)
Manual de lenguaje 4D ( 4D v19.8)