4D v17.4

collection.every( )

Página Inicial

 
4D v17.4
collection.every( )

collection.every( )  


 

O método collection.every( ) devolve true se todos os elementos na coleção passaram com sucesso uma prova implementada no método nomMet passado.

De forma pré-determinada, collection.every( ) prova toda a coleção. Opcionalmente, pode passar em posicIni o índice do elemento desde o qual começaaa prova.

  • Se posicIni >= longitude da coleção, se devolve false, o que significa que a coleção não se prova.
  • Se posicIni < 0, o fim da coleção se considera como ponto de inicio do cálculo da posição ( posicIni :=posicIni +length).
  • Se posicIni = 0, se busca em toda a coleção (como padrão).

Em nomMet, passe o nome do método a usar para avaliar os elementos da coleção, junto com seus parâmetros em param (opcional). nomMet pode realizar qualquer prova, com ou sem os parâmetros. Este método recebe um parâmetro Object em $1 e deve definir $1.result como true para cada elemento que cumpra a prova.

nomMet recebe os parâmetros abaixo:

  • en $1.value: valor do elemento a avaliar
  • en $2: param
  • en $N...: param2...paramN

nomMet define os parâmetros abaixo:

  • $1.result (booleano): true se a avaliação do valor do elemento for exitosa, do contrário, é false.
  • $1.stop (booleano, opcional): true para deter a retrochamada do método. O valor devolvido é o último calculado.

Em todos os casos, no momento em que a função collection.every( ) encontrar o primeiro elemento da coleção que devolver false em $1.result, deixa de chamar a nomMet e devolve false.

 C_COLLECTION($c)
 $c:=New collection
 $c.push(5;3;1;4;6;2)
 $b:=$c.every("NumberGreaterThan0") //devolve true
 $c.push(-1)
 $b:=$c.every("NumberGreaterThan0") //devolve false

Com o método abaixo NumberGreaterThan0:

 $1.result:=$1.value>0

Este exemplo prova que todos os elementos de uma coleção sejam do tipo real:

 C_COLLECTION($c)
 $c:=New collection
 $c.push(5;3;1;4;6;2)
 $b:=$c.every("TypeLookUp";Is real//$b=true
 $c:=$c.push(New object("name";"Cleveland";"zc";35049))
 $c:=$c.push(New object("name";"Blountsville";"zc";35031))
 $b:=$c.every("TypeLookUp";Is real//$b=false

Com o método abaixo TypeLookUp:

 C_OBJECT($1)
 C_LONGINT($2)
 If(Value type($1.value)=$2)
    $1.result:=True
 End if



Ver também 

collection.some( )

 
PROPRIEDADES 

Produto: 4D
Tema: Coleções

This command can be run in preemptive processes

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v17)
Manual de linguagem 4D ( 4D v17.1)
Manual de linguagem 4D ( 4D v17.2)
Manual de linguagem 4D ( 4D v17.3)
Manual de linguagem 4D ( 4D v17.4)