collection.some( ) メソッドはコレクション内の要素の少なくとも1つが、methodName 引数で指定したファンクションで実装されたテストをパスした場合にtrue を返します。
デフォルトでは、collection.some( ) はコレクション全体をテストします。オプションとして、startFrom 引数にテストを開始したい要素のインデックスを渡すこともできます。
- startFrom がコレクションのlength 以上だった場合、-1 が返されます。これはコレクションがテストされていないことを意味します。
- startFrom が負の値(0未満)だった場合、それはコレクションの終わりからのオフセットであるとみなされます。
- startFrom が0だった場合、コレクション全体がテストされます(デフォルト)。
methodName 引数には、コレクションの要素を評価するのに使用するメソッド名を渡します。必要であればparam 引数に必要な引数を渡します(任意)。methodName で指定したメソッドはどんなテストでも実行でき、引数はあってもなくても構いません。このメソッドは$1にObject 引数を受け取り、テストをパスした要素の$1.result をtrue に設定しなければなりません。
methodName で指定したメソッドは以下の引数を受け取ります:
- $1.value: 評価する要素の値
- $2: param
- $N...: param2...paramN
methodName で指定したメソッドは以下の引数を設定します:
- $1.result (ブール): 要素の値の評価が成功した場合にはtrue 、それ以外の場合にはfalse
- $1.stop (ブール、任意): メソッドコールバックを止める場合にはtrue。返された値は最後に計算されたものです。
どの場合においても、
collection.some( ) ファンクションが
$1.result に
true を返すコレクションの要素を発見した場合、ファンクションは
methodName のメソッドの呼び出しをやめ、
true を返します。
C_COLLECTION($c)
C_BOOLEAN($b)
$c:=New collection
$c.push(-5;-3;-1;-4;-6;-2)
$b:=$c.some("NumberGreaterThan0")
$c.push(1)
$b:=$c.some("NumberGreaterThan0")
$c:=New collection
$c.push(1;-5;-3;-1;-4;-6;-2)
$b:=$c.some("NumberGreaterThan0")
$b:=$c.some(2;"NumberGreaterThan0")
NumberGreaterThan0 メソッドの中身は以下のようになります:
$1.result:=$1.value>0