Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.reduce( )
|
collection.reduce ( nomeMet {; valorInicial}{; param}{; param2 ; ... ; paramN} ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
nomeMet | Texto |
![]() |
Nome da função a chamar para processar elementos de coleção | |||||
valorInicial | Texto, Número, Objeto, Collection, Data, Booleano |
![]() |
Valor a usar como primeiro argumento para a primeira chamada ao nomeMetodo | |||||
param | Expression |
![]() |
Parâmetros a passar ao nomeMet | |||||
Resultado | Texto, Número, Objeto, Collection, Data, Booleano |
![]() |
Resultado do valor do accumulator | |||||
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:
nomMet define os parâmetros abaixo:
C_COLLECTION($c)
$c:=New collection(5;3;5;1;3;4;4;6;2;2)
$r:=$c.reduce("Multiply";1) //retorna 86400
Com o método Multiply:
If(Value type($1.value)=Is real)
$1.accumulator:=$1.accumulator*$1.value
End if
Este exemplo permite reduzir vários elementos de coleção a um só:
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]
Com o método Flatten:
If($1.accumulator=Null)
$1.accumulator:=New collection
End if
$1.accumulator.combine($1.value)
Produto: 4D
Tema: Coleções
Número
705248
Criado por: 4D v16 R6
Manual de linguagem 4D ( 4D v19)
Manual de linguagem 4D ( 4D v19.1)
Manual de linguagem 4D ( 4D v19.4)
Manual de linguagem 4D ( 4D v19.5)
Manual de linguagem 4D ( 4D v19.6)
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)