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:
- en $1.value: valor del elemento a procesar
- en $2: param
- en $N...: param2...paramN
nomMet define los siguientes parámetros:
- $1.accumulator: valor a modificar por la función y que es inicializado por valorInicial.
- $1.stop (booleano, opcional): true para detener la retrollamada del método. El valor devuelto es el último calculado.
Con el siguiente método Multiply:
Este ejemplo permite reducir varios elementos de colección a uno solo:
Con el siguiente método Flatten:
If($1.accumulator=Null)
$1.accumulator:=New collection
End if
$1.accumulator.combine($1.value)