ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v19.8
collection.find( )

collection.find( ) 


 

collection.find ( {startFrom ;} methodName {; param {; param2 ; ... ; paramN}} ) -> 戻り値 
引数   説明
startFrom  倍長整数 in 検索を開始するインデックス
methodName  テキスト in 検索のために呼び出すメソッドの名前
param  in methodNameに渡す引数
戻り値  in 最初に見つかった値、あるいは見つからなかった場合にはUndefined

説明   

collection.find( ) メソッドは、methodName 引数を各要素に適用して、true を返すコレクション内の最初の値を返します。

注: このメソッドは元のコレクションは変更しません。

デフォルトでは、collection.find( ) はコレクション全体を検索します。オプションとして、startFrom 引数に検索を開始する要素のインデックスを渡すこともできます。

  • startFrom がコレクションのlength 以上の場合、-1 が返されます。これは検索が開始しなかったことを意味します。
  • startFrom が負の値の場合、それはコレクションの終端からのオフセットであるとみなされます(startFrom:=startFrom+length)。
    注: startFrom が負の値であっても、コレクションは左から右へと検索がされます。
  • startFrom が0 の場合、コレクション全体が検索されます(デフォルト)。

methodName 引数には、コレクションの要素を評価するのに使用するメソッドの名前を渡します。必要であればparam 引数(任意)に引数を渡します。methodName 引数で指定したメソッドはどのようなテストでも実行でき、引数を使用してもしなくても構いません。メソッドは$1Object 引数を引き受け、条件を満たす最初の要素の$1.resulttrue に設定しなければなりません。

methodName 引数は以下の引数を受け取ります:

  • $1.value: 評価する要素の値
  • $2: param
  • $N...: param2...paramN

methodName 引数は以下の引数を設定します:

  • $1.result (ブール): 要素の値が検索条件に合致する場合にはtrue
  • $1.stop (ブール、任意): メソッドコールバックを中止する場合にはtrue。返された値は最後に計算されたものになります。

lengthが5未満の最初の要素を取得したい場合を考えます:

 C_COLLECTION($col)
 $col:=New collection("hello";"world";4;"red horse";"tim";"san jose")
 $value:=$col.find("LengthLessThan";5) //$value="tim"

LengthLessThan メソッドのコードは以下のようになります:

 C_OBJECT($1)
 C_LONGINT($2)
 If(Value type($1.value)=Is text)
    $1.result:=(Length($1.value))<$2
 End if

コレクション内で都市名を検索したい場合を考えます:

 C_COLLECTION($c)
 $c:=New collection
 $c.push(New object("name";"Cleveland";"zc";35049))
 $c.push(New object("name";"Blountsville";"zc";35031))
 $c.push(New object("name";"Adger";"zc";35006))
 $c.push(New object("name";"Clanton";"zc";35046))
 $c.push(New object("name";"Clanton";"zc";35045))
 $c2:=$c.find("FindCity";"Clanton") //$c2={name:Clanton,zc:35046}

FindCity メソッドのコードは以下のようになります:

 C_OBJECT($1)
 C_TEXT($2)
 $1.result:=$1.value.name=$2



参照 

collection.findIndex( )

 
プロパティ 

プロダクト: 4D
テーマ: コレクション
番号: 805258

This command can be run in preemptive processes

 
ページの目次 
 
履歴 

初出: 4D v16 R6

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v19)
ランゲージリファレンス ( 4D v19.1)
ランゲージリファレンス ( 4D v19.4)
ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)