第15回 「配列への代入」
今回は配列変数への代入について説明します。前回配列の作成個数を指定できると書きました。以下のスクリプトです。
A = new Array(31);
これで配列が31個作成されます。しかし、次のように書くと配列は2個作成されます。
A = new Array(31,32);
これは一体どういうことなのでしょうか。実はJavaScriptでは配列の引数が1つか複数かによって動作が違うのです。また、1つであっても数値でない場合は、個数とみなされず配列のデータとして代入されます。
これは以下のスクリプトを動かしてみると分かるでしょう。
<html>
<head>
<title></title>
</head>
<body>
<script language="JavaScript"><!--
A = new Array(31);
document.write(A[0],":",A.length,"<br>");
A = new Array(31,32);
document.write(A[0],":",A.length,"<br>");
A = new Array("31");
document.write(A[0],":",A.length,"<br>");
// --></script>
</body>
</html>
実行結果は以下のようになります。最初がA[0]に代入されたデータ、次が配列変数の長さになります。
undefined:31
31:2
31:1
覚えるのであれば「Array()の引数が1つで数字なら個数、それ以外は全て代入」で良いでしょう。
すでにサンプルで示してしまいましたが、配列の長さも調べることができます。これは
配列変数名.length
とします。配列に代入されたデータの数だけ繰り返す場合などに使います。配列への代入はArray()の引数として指定する以外にも以下のように直接添字を指定して書くこともできます。
A[0] = "ABC";
A[3] = "DEF";
この場合の配列の長さは0〜3までの4個になります。つまり一番大きい添字+1の長さになります。実際に以下のスクリプトで見てみると分かります。
<html>
<head>
<title></title>
</head>
<body>
<script language="JavaScript"><!--
A = new Array();
A[0] = "Abc";
A[3] = "Def";
document.write(A[0],":",A.length,"<br>");
// --></script>
</body>
</html>
次回は本題である「配列変数を使ってランダムにメッセージを表示する」スクリプトを作成します。