O método collection.reduce( ) aplica o método de retrochamada nomMet contra um acumulador e cada elemento da coleção (de esquerda a direita) para reduzí-lo a um único valor.
Nota: este método não modifica a coleção original.
Em nomMet, passe o nome do método a utilizar para avaliar os elementos da coleção, junto con seu(s) parâmetro(s) em param (opcional). nomMet toma cada elemento da coleção e realiza toda operação desejada para acumular o resultado em $1.accumulator, que se devollve em $1.value.
Pode passar o valor para inicializar o acumulador em valorInicial. Se for omitido, $1.accumulator começa com Undefined.
nomMet recebe os seguintes parâmetros:
- em $1.value: valor do elemento a processar
- em $2: param
- em $N...: param2...paramN
nomMet define os parâmetros abaixo:
- $1.accumulator: valor a modificar pela função e que é inicializado por valorInicial.
- $1.stop (booleano, opcional): true para deter a retrochamada do método. O valor devolvido é o último calculado.
Este exemplo permite reduzir vários elementos de coleção a um só:
Com o método Flatten:
If($1.accumulator=Null)
$1.accumulator:=New collection
End if
$1.accumulator.combine($1.value)