El método collection.every( ) devuelve true si todos los elementos en la colección pasaron con éxito una prueba implementada en el método nomMet pasado.
De forma predeterminada, collection.every( ) prueba toda la colección. Opcionalmente, puede pasar en posicIni el índice del elemento desde el que comienza la prueba.
- Si posicIni >= longitud de la colección, se devuelve false, lo que significa que la colección no se prueba.
- Si posicIni < 0, el fin de la colección se considera como punto de inicio del cálculo de la posición ( posicIni :=posicIni +length).
- Si posicIni = 0, se busca en toda la colección (por defecto).
En nomMet, pase el nombre del método a usar para evaluar los elementos de la colección, junto con su(s) parámetro(s) en param (opcional). nomMet puede realizar cualquier prueba, con o sin los parámetros. Este método recibe un parámetro Object en $1 y debe definir $1.result como true para cada elemento que cumple la prueba.
nomMet recibe los siguientes parámetros:
- en $1.value: valor del elemento a evaluar
- en $2: param
- en $N...: param2...paramN
nomMet define los siguientes parámetros:
- $1.result (booleano): true si la evaluación del valor del elemento es exitosa, de lo contrario, es false.
- $1.stop (booleano, opcional): true para detener la retrollamada del método. El valor devuelto es el último calculado.
En todos los casos, en el momento en que la función collection.every( ) encuentra el primer elemento de la colección que devuelve false en $1.result, deja de llamar a nomMet y devuelve false.
C_COLLECTION($c)
$c:=New collection
$c.push(5;3;1;4;6;2)
$b:=$c.every("NumberGreaterThan0")
$c.push(-1)
$b:=$c.every("NumberGreaterThan0")
Con el siguiente método NumberGreaterThan0:
$1.result:=$1.value>0
Este ejemplo prueba que todos los elementos de una colección son del tipo real:
Con el siguiente método TypeLookUp:
C_OBJECT($1)
C_LONGINT($2)
If(Value type($1.value)=$2)
$1.result:=True
End if