ArrayReplace 関数 (LotusScript 言語)

配列内の複数の値に対して、検索と置換のルーチンを実行します。

構文

ArrayReplace( sourceArray, compareArray, replaceArray )

要素

sourceArray

コピー元のソース配列。場合によって修正を加えます。

compareArray

sourceArray の要素と比較される要素を含む配列です (単一要素の配列として扱われるスカラーの場合もあります)。

replaceArray

sourceArray の要素の置き換えに使用される要素を含む配列です (単一要素の配列として扱われるスカラーの場合もあります)。

戻り値

この規則で作成された配列 (戻り値の配列) を含む Variant 型です。

使用法

sourceArray の各要素は、戻り値の配列にコピーできるようになっています。結果として得られる配列のサイズは、パラメータ sourceArray に含まれる配列のサイズと同じです。ソース配列と置き換えられる配列のデータ型が一致する場合は、戻り値の配列はその型になります。それ以外の場合は Variant 型の配列になります。

注: ArrayReplace は、特定の LotusScript® スカラーデータ型 (integer、long、single、double、currency、string、boolean、byte) でのみ機能します。その他のデータ型を sourceArrayreplaceArray で使用すると、結果として得られる配列には sourceArray とまったく同じデータ要素が含まれます。つまり、配列要素は何も置き換えられません。

sourceArray の各要素について、compareArray が検索されます。一致する要素がない場合は、戻り値の配列で次に使用可能なインデックスに sourceArray の要素がコピーされます。ただし、compareArray の要素が sourceArray の要素と一致する場合は、compareArray の要素のインデックスを使用して replaceArray 配列の値が検索されます。次にこの値は sourceArray の値ではなく戻り値の配列にコピーされます。

以下に例を示します。

sourceArray = [1,2,3,4,5]

compareArray = [2,4,6,8,10,12,14,16,18,20]

replaceArray = [8,6,25,0,0,11,17]

1. sourceArray の要素 1 が compareArray の要素と比較されます。 一致する要素が見つからないため、sourceArray の最初の要素が、最初の要素の戻り値の配列にコピーされます。

answer array = [1,...]

2. sourceArray の要素 2 が compareArray の要素と比較されます。compareArray の最初の要素が sourceArray の 2 番目の要素と一致すると、compareArray の最初の要素に対応するインデックス 1 を使用して replaceArray の値 [8] が検索されます。続いてこの値は戻り値の配列にコピーされます。

answer array = [1,8,...]

3. sourceArray の要素 3 が compareArray の要素と比較されます。一致する要素が見つからないため、sourceArray の 3 番目の要素が戻り値の配列にコピーされます。

answer array = [1,8,3,...]

4. sourceArray の要素 4 が compareArray の要素と比較されます。 compareArray の 2 番目の要素が sourceArray の 4 番目の要素と一致すると、compareArray の 2 番目の要素に対するインデックス 2 を使用して replaceArray の値 [6] が検索されます。続いてこの値は戻り値の配列にコピーされます。

answer array = [1,8,3,6,...]

5. sourceArray の最後の要素が compareArray の要素と比較されます。一致する要素が見つからないため、sourceArray の 5 番目の要素が戻り値の配列にコピーされます。

answer array = [1,8,3,6,5]

compareArray からのインデックスが replaceArray へのインデックスとして使用できない場合 (インデックスが範囲外の場合)、ゼロまたはそれに相当する型がその要素の戻り値の配列にコピーされます。

配列へのインデックスはそのベースから計算されます。compareArray が (-10 to 0) からの配列、replaceArray は (1 to 5) からの配列であるとします。compareArray の -10 番目の要素はその配列の 1 番目の要素であり、これが sourceArray の指定した要素と一致する場合、replaceArray1 番目の要素が代替として使用されます。

以下に例を示します。

sourceArray(1 to 10) = [the,quick,sleek,cat,jumped,over,the,fat,sleeping,dog]

compareArray(-10 to 0) = [sleek,cat,jumped,fat,sleeping,under,ball,purple,tree,slow,over]

replaceArray(1 to 5) = [red,fox,hurdled,lazy,brown]

1. sourceArray の最初の要素が compareArray の要素と比較されます。一致する要素が見つからないため、souceArray の最初の要素が戻り値の配列にコピーされます。

answer array=[the,...]

2. sourceArray の 2 番目の要素が compareArray の要素と比較されます。 一致する要素が見つからないため、souceArray の最初の要素が戻り値の配列にコピーされます。

answer array=[the,quick,...]

3. sourceArray の 3 番目の要素が compareArray の要素と比較されます。compareArray の最初の要素で一致する要素が見つかりますが、replaceArray の -10 番目のインデックスにアクセスしようとしません。このインデックスは無効なので、代わりに compareArray の一致する要素に相当するインデックスが replaceArray 用に計算されます。 この結果、replaceArray の最初の要素が戻り値の配列にコピーされます。

answer array=[the,quick,red...]

以下省略。

compareArray の 0 番目の要素が sourceArray の要素と一致することに注目してください。これは replaceArray の 11 に変換されるので範囲外となり、その代わりに置換値として null 値が使用されます。

answer array=[the,quick,red,fox,hurdled,{null},...]

このようにして「the quick sleek cat jumped over the fat sleeping dog」は「the quick red fox hurdled the lazy brown dog」になります。

各要素型は、変換されたものと一致していなければなりません。例えば、sourceArray に integer データ型の値 1 が含まれ、compareArray に long データ型の値 1 が含まれている場合、これらの要素は一致しません

拡張例: 配列と文字列関数