インデックス付きフィールドの長さにアクセスするために、CA Process Automation では、配列とそのサイズ プロパティのために、JavaScript の length プロパティをサポートしています。 length プロパティは読み取り専用ですが、size プロパティではインデックス付きフィールドの要素数を変更できます。 length プロパティは、インデックス付きフィールドの要素数を返すためにドットまたは角かっこ表記法のいずれかを使用します。
dataset_reference.indexed_field_name.length
dataset_reference[indexed_field_name_expression].length
size プロパティは、ドットまたは角かっこ表記法のいずれかを使用して、同様に動作します。
dataset_reference.indexed_field_name.size
dataset_reference[indexed_field_name_expression].size
インデックス付きフィールドはゼロベース配列なので、length および size プロパティが、フィールドの最終要素に対して複数のインデックスを返します。 そのため、length または size が n を返す場合、フィールドには 0、1、... n-1 のインデックス付き要素が含まれ、配列の最終要素のインデックスは n-1 です。
size プロパティに新しい値を割り当てると、インデックス付きフィールドでの要素数を拡張または縮小できます。 size プロパティの値を減らすと、インデックス付きフィールドの上限から要素が削除され、削除された要素に格納された値は削除されます。 以下のコードでは、size プロパティを使用して配列 X の長さを増やし、新しい要素に 25 を割り当てます。
Process.X.size = Process.X.size + 1; Process.X[Process.X.size - 1] = 25;
多次元配列の場合、size または length プロパティは、付加する配列アドレス内の要素数を返します。
たとえば、matrix[a][b] という 2 次元配列があります。以下の構文は、要素 0...size 1 - 1 を含む matrix の最初の次元のサイズを返します。
size1 = matrix.length
以下の構文は、matrix の第 2 次元のサイズを返します。a = 2 の場合、最初の次元要素 2 には、要素 0...size2 - 1 を含む b があります(要素 0...size1 - 1 を含みます)。
size2 = matrix[2].length
以下の例では、多次元のインデックス付きフィールドの要素のアドレスを指定します。この例では、matrix というプロセス データセット変数で、2 次元のインデックス付きフィールド(配列の配列)内のすべての要素をループします。 以下のコードは、values というプロセス データセット変数で、各要素の値を 1 次元のインデックス付きフィールドに割り当てます。
var i; j; k=0;
for (i=0; i < Process.matrix.length; i++)
{
for (j=0; j < Process.matrix[i].length; j++)
{
Process.values[k] = Process.matrix[i][j] k++
}
}
|
Copyright © 2013 CA.
All rights reserved.
|
|