O método collection.filter( ) devolve uma nova coleção que contém todos os elementos da coleção original para os quais o resultado do método nomMet é true. Este método devolve uma cópia superficial, o que significa que os objetos ou coleções em ambas as coleções compartem a mesma referência. Se a coleção original for uma coleção compartida, a coleção devolvida também é uma coleção compartida.
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 com seu(s) parâmetro(s) em param (opcional). nomMet pode realizar qualquer prova, com ou sem os parâmetro(s), e deve devolver true em $1.result para cada elemento que cumpra a condição e portanto, para avançar a nova coleção.
nomMet recebe os parâmetros abaixo:
- em $1.value: valor do elemento a filtrar
- em $2: param
- em $N...: param2...paramN
nomMet define os parâmetros abaixo:
- $1.result (booleano): true se o valor do elemento coincide com a condição do filtro e deve ser mantida.
- $1.stop (booleano, opcional): true para deter a retrochamada do método. O valor devolvido for o último calculado.
Deseja obter a coleção de elementos de texto cuja longitude for menor que 6:
O código para o método LengthLessThan é:
C_OBJECT($1)
C_LONGINT($2)
If(Value type($1.value)=Is text)
$1.result:=(Length($1.value))<$2
End if
Deseja filtrar os elementos de acordo com seu tipo de valor:
O código para TypeLookUp é:
C_OBJECT($1)
C_LONGINT($2)
If(OB Get type($1;"value")=$2)
$1.result:=True
End if