Array

Q
Arrayコンストラクタの引数にオブジェクトを指定する場合の注意

A
Arrayコンストラクタは、引数を「配列要素」として初期化する場合と、引数を「要素数」とし要素数分の空要素を作成して初期化する場合、2通りのパターンあります。
通常、引数へオブジェクトを指定した場合は「配列要素」として初期化されますが、Value(値)がinteger(数値)型となるオブジェクトを1つだけ引数へ指定した場合は、「配列要素」として判断されず、「要素数」として初期化されます。

[ 例 ]
(1) 引数のオブジェクトが「要素数」として初期化されるパターン

/* 「PulldownList1.Value = 0」の場合 */
var ary = new Array(PulldownList1);
   ・・・(※ 「var ary = new Array(0);」 と同様)
print("ary.length = " + str(ary.length));

実行結果 : ary.length = 0
(2) 引数のオブジェクトが「配列要素」として初期化されるパターン

/* 「PulldownList1.Value = 0」、 「PulldownList2.Value = 2」の場合 */
var ary = new Array(PullDownList1,PullDownList2);
print("ary.length = " + str(ary.length));

実行結果 : ary.length = 2
※要素数がPulldownListのValueに左右されない。


Value(値)がinteger(数値)型となるオブジェクトには、PullDownList、OptionButton、CheckBox、ListBoxがあります。 また、オブジェクトタイプがNumber型に指定されているTextBox等も同様です。
これらのオブジェクトを「配列要素」として格納するには、以下のように記述します。

[ 回避方法 ]
var ary = new Array();
arr[0] = PullDownList1;
print("ary.length = " + str(ary.length));

実行結果 : ary.length = 1


管理番号:Ary_002
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser・Biz/Designer TIPS集 トップへ