ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.reduce( )
|
collection.reduce ( methodName {; initValue}{; param}{; param2 ; ... ; paramN} ) -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
methodName | テキスト |
![]() |
コレクションの要素を処理するために呼び出すファンクション名 | |||||
initValue | テキスト, 数値, オブジェクト, コレクション, 日付, ブール |
![]() |
methodNameの最初の呼び出しに最初の引数として使用する値 | |||||
param | 式 |
![]() |
methodNameに渡す引数 | |||||
戻り値 | テキスト, 数値, オブジェクト, コレクション, 日付, ブール |
![]() |
アキュムレーター値の結果 | |||||
collection.reduce( ) ファンクションは methodName 引数で指定した呼び出しファンクションをアキュムレーターとコレクション内の各要素に対して(左から右へ)適用し、単一の値へとまとめます。
注: このコマンドは元のコレクションは変更しません。
methodName 引数には、コレクションの要素を評価するのに使用するメソッドの名前を渡します。オプションとして使用する引数をparam 引数に渡すこともできます。methodName 引数はコレクションの各要素を受け取り必要なオペレーションを実行して結果を$1.accumulator に蓄積し、これは$1.value に返されます。
initValue 引数に値を渡すことでアキュムレーターを初期化することができます。省略された場合は、$1.accumulator はUndefined から開始されます。
methodName は以下の引数を受け取ります:
methodName は以下の引数を設定します:
C_COLLECTION($c)
$c:=New collection(5;3;5;1;3;4;4;6;2;2)
$r:=$c.reduce("Multiply";1) //86400を返す
このときMultiply メソッドは以下のようになっています:
If(Value type($1.value)=Is real)
$1.accumulator:=$1.accumulator*$1.value
End if
以下の例題では、複数のコレクションの要素を単一のコレクションにまとめる場合を考えます:
C_COLLECTION($c;$r)
$c:=New collection
$c.push(New collection(0;1))
$c.push(New collection(2;3))
$c.push(New collection(4;5))
$c.push(New collection(6;7))
$r:=$c.reduce("Flatten") //$r=[0,1,2,3,4,5,6,7]
このとき、Flatten メソッドは以下のようになっています:
If($1.accumulator=Null)
$1.accumulator:=New collection
End if
$1.accumulator.combine($1.value)
プロダクト: 4D
テーマ: コレクション
番号:
705248
初出: 4D v16 R6
ランゲージリファレンス ( 4D v19)
ランゲージリファレンス ( 4D v19.1)
ランゲージリファレンス ( 4D v19.4)
ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)