配列の利用
1. 配列の宣言
 変数を多数使うときに,それぞれの変数に名前を付けて準備するのは大変です.配列を使うと,1つの名前と番号によって多くの変数を管理できます.
【配列の宣言】
配列名 = new Array();
≪例≫ book1 = new Array();
 newは小文字で,Array()は大文字で始めなければならない.
 javascriptの配列は,要素数を後から指定することも,後から要素数を変更することも,宣言と同時に初期化することもできます.
【配列の要素数も指定して宣言】
配列名 = new Array(要素数);
≪例≫ book1 = new Array(10);
【配列宣言と同時に初期化】
配列名 = new Array(要素,要素,要素,...);
≪例≫
city1 = new Array('tokyo','osaka','kobe');
num1 = new Array(3,5,0,1);
2. 配列の要素
(1) 配列の要素は,0番から始まる番号で参照されます.
(2) 配列要素の番号は,カギ括弧[ ]の中に書きます.
(3) 要素数がn個の配列には,第n要素はありません.
(4) 配列の要素数は,配列名.lengthで求められます.
≪例≫
3個の要素から成る配列 letter1 = new Array('a','b','c');について
(1)(2)
 letter1[0]は'a',letter1[1]は'b',letter1[2]は'c'です.
(3) letter1[3]はありません.
(4) letter1.lengthは3になります.
※このような,n個からなるものを0番からn−1番までの番号で表す方法は,プログラミング言語で広く使われています.
初めは違和感があるかもしれませんが,慣れれば問題ありません.
例えば,配列のすべての要素を表示する場合
for(kk = 0; kk < letter1.length; kk++)
  document.write(letter1[kk]);
のように0スタートにして,要素数を不等号にするとよい.

【例1】宣言と同時に初期化する場合
num1 = new Array(2,5,1);
【例2】要素数3を指定して宣言する場合
num1 = new Array(3);←カッコ内は要素数
num[0] = 2;←後から個別に要素に値を代入できる
num[1] = 5;
num[2] = 1;
【例3】後から要素数を変更してもよい
num1 = new Array(2,5,1);
num[3] = 7;←これで要素数は4になる.
【よくある間違い1】
num1 = new array();←小文字では配列にならない
【よくある間違い2】
num1 = new Array(3);←整数1個の配列のつもり
※要素数が1個の配列も定義できるが,整数1個の配列はこの書き方では初期化できない.この書き方では,要素数が3個で,各々の値は未定義ということになる.
3という1つの要素をもつ配列にするには
num1 = new Array(1); num1[0] = 3;などとする.

3. 多次元配列
 配列の要素が配列であることもできます:二次元配列になります.
【例4】
num2 = new Array();
num2[0] = new Array(3,4);
num2[1] = new Array(1,3,7,9);
num2[2] = new Array(2,4,6);
(1) このnum2は二次元配列になります.
(2) 個々の要素は,num2[0][0]→2, num2[0][1]→4
…num2[2][2]→6となります.
(3) 配列の要素数は, num2.length→3 , num2[0].length→2 , num2[1].length→4 , num2[2].length→3となります.
【例5】 次のように書くこともできます.
num2
=new Array(new Array(3,4),new Array(1,3,5));
 三次元以上の配列も定義できます.
【例6】
num3 = new Array();
num3[0] = new Array();
num3[0][0] = new Array(1,2);
num3[0][1] = new Array(-1,3);
num3[1] = new Array();
num3[1][0] = new Array(5,6,7);
num3[1][1] = new Array(4,8);
num3[0][0][1]→2 , num3[1][0][2]→7などとなります.

【例1】
 アルファベット小文字の配列
abc1 = new Array('a','b','c','d','e','f','g');
について
(1) 0スタートの番号で3番目の要素を表示してください.
(2) 0スタートの番号で4番目の要素を大文字の'E'に書き換えてから,配列の要素を全て表示してください.
(3) 配列の要素を1つ増やして'h'を追加してください.
(答案例)
(1)
(2)
(3)
【例2】
 二次元配列
pref1 = new Array();
pref1[0] = new Array('沖');
pref1[1] = new Array('鹿','宮','大','熊','長','佐','福');
pref1[2] = new Array('徳','高','愛','香');
について
(1) プログラムを使って,配列の全要素数を表示してください.
(2) プログラムを使って,'高'という要素がある配列番号(0スタートの番号)を調べてください.
(答案例)
(1)→12
(2)→[2][1]

【例3】
 平年とうるう年の日数の配列
month_day = new Array();
month_day[0]=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
month_day[1]=new Array(31,29,31,30,31,30,31,31,30,31,30,31);
を使って,次の問いに答えてください.なお,2018年1月1日が月曜日であることを使ってよい.
(1) 2018年8月1日は何曜日か.
(2) 2020年10月3日は何曜日か.
西暦年が4で割り切れる年はうるう年,ただし100で割り切れる年は平年,400で割り切れる年はうるう年です.(1)(2)の期間ではうるう年は2020年だけです.
(答案例)
(1)→水
(2)→土
【例4】
 自然数を次のような群数列に分け,第20群まで考えるとき,配列を利用して次の問いに答えてください.
1 | 2 , 3 | 4 , 5 , 6 | 7 , …
(1) 第10群の第3項は幾らか.
(2) 元の数列の第100項は,群数列では第何群の第何項か.
(3) 第15群の項の和は幾らか.
(答案例)
(1) → 48になります.
(2) → 第13群の第8項になります.
(3) → 1695