contents
n 個の要素を持つ配列、もしくはe1, e2, ...を要素とする配列を作成します。配列のインデックスは 0 から始まります。Netscape Navigator 3.0 では要素は最初 null に初期化されますが、Netscape Communicator 4.0 以降は undefined で初期化されます。n は省略可能です。下記のようにn - 1 を超えるインデックスも使用可能で、xx[6]を利用した時点で 0〜6 まで7個の要素が生成されます。
xx = new Array(3); xx[0] = "Sun"; xx[1] = "Mon"; xx[6] = "Sat"; yy = new Array("Sun", "Mon", "Thu"); alert(yy[0] + yy[1] + yy[2]);
以下のようにして2次元配列も扱うことができます。
xx = new Array(3); for (i = 0; i < xx.length; i++) { xx[i] = new Array(4); for (j = 0; j < xx[i].length; j++) { xx[i][j] = i * 10 + j; } } alert(xx[2][3]);
以下のようにして[ ] 内に文字列を使用することもできます。
xx = new Array(); xx["Sun"] = "Sunday"; xx["Mon"] = "Monday"; alert(xx["Sun"]);
該当の要素が存在するかどうかを調べるには in を用います。
xx = new Array(); xx[0] = "AAA"; xx[1] = "BBB"; xx[2] = "CCC"; if (1 in xx) { /* 実行される */ }
要素を削除するには delete を用います。この場合、xx[1] は undefined になりますが、xx[0] や xx[2] はそのまま残ります。
xx = new Array(3); xx[0] = "AAA"; xx[1] = "BBB"; xx[2] = "CCC"; delete xx[1];
delete を使用した場合は要素自体が削除されますが、undefined を代入した場合は要素の値が undefined となり、要素自体は残ります。
xx[1] = undefined; if (1 in xx) { /* 実行される */ } delete xx[1]; if (1 in xx) { /* 実行されない */ }
配列要素の個数を得るには length プロパティを参照します。
for (i = 0; i < xx.length; i++) { alert(xx[i]); }
length に 0 を代入することで、配列の要素をすべて削除することができます。
xx.length = 0;
array と array2 を連結した配列を返します。array は変更されません。引数に複数指定することも可能です。
xx = new Array("Sun", "Mon", "Tue", "Wed"); yy = new Array("Thu", "Fri", "Sat"); zz = xx.concat(yy); // zz は "Sun", ...., "Sat" となる
array の各要素の値を separator で連結した文字列を返します。separator を省略した場合は通常カンマ(,)で連結されますが、JavaScript のバージョンによって動作が異なるので省略しない方が無難です。array は変更されません。
xx = new Array("2000", "12", "31"); yy = xx.join("/"); // yy は "2000/12/31" となる
unshift() は array の先頭に e1, e2, ... の配列要素を加えます。push() は array の最後に配列要素を加えます。戻り値は JavaScript のバージョンによって異なります。
xx = new Array("Sun", "Mon"); xx.push("Tue"); xx.push("Wed");
shift() は array の最初の要素を削除します。pop() は array の最後の要素を削除します。array 自身が変更されます。戻り値は削除した値となります。
0 から数えて、start 番目から n 個の要素を削除し、その代わりに e1, e2, ...を値とする要素を埋め込みます。戻り値は JavaScript のバージョンによって異なります。
xx = new Array("A", "B", "C", "D", "E", "F", "G"); xx.splice(2, 3, "c", "d", "e"); // "C", "D", "E" が小文字になります
0 から数えて、start 番目〜 end - 1 番目までの要素を抜き出した配列を返します。end を省略した場合は最後までの要素を返します。array は変化しません。
array をソートしてその結果の配列を返します。array 自身がソートされます。func で比較関数を指定することも可能です。比較関数では負数、0、正数によって順序を返すようにします。
xx = new Array(3, 7, 8, 1); xx.sort(); alert(xx); function hikaku(a, b) { return(b - a); } yy = new Array(3, 7, 8, 1); yy.sort(hikaku); alert(yy);
array を逆順に並べ替えてその結果の配列を返します。array 自身が並べ替えられます。
xx = new Array(1, 2, 3, 4); xx.reverse(); alert(xx);
Netscape Navigator 2.0 でも Array() を使用可能ですが、動作が不安定なので、次のような関数を自分で作成して用いなくてはなりません。Netscape Navigator 2.0 では xx[0] は xx.length(最初に定義された属性)を示すため、配列の序数は 1 から始めなくてはなりません。
function MakeArray(n) { this.length = n; for (i = 1; i <= n; i++) { this[i] = ""; } return(this); } xx = new MakeArray(3); xx[1] = "AAA"; xx[2] = "BBB"; xx[3] = "CCC";
Netscape Communicator で LANGUAGE 属性に JavaScript1.2 を指定した場合、new Array(3) は Array(e1, e2, ...) の形式と解釈され、xx[0] が 3 という値をもつ単一要素を生成します。JavaScript1.3 では JavaScript1.1 の仕様に戻されました。
flowerサイトの日替わりの絵の表示で作成したscript_150524
xyz=[mon,tommrow]; return return ; =配列(Array)の要素の取り出しに同じ/*以下は明日の「月」「日」を取得*/ var tom=tommo(); var tommon=tom[0];/*明日の「月」を取得*/ var tomday=tom[1];/*明日の「日」を取得*/ function tommo(){ /*「明日」の月と日を得る*/ /*tommrow =Number(tommrow);*//*tommrow=dayを数値オブジェクトに生成*/ var mon = (NewDay.getMonth()+1); var tommrow = (NewDay.getDate()+1); var monday=mon+tommrow;/*例えば今日の月と日がmonは5、dayが10であればmondayは510*/ if (monday=='131'){mon="2";tommrow="1";} if (monday=='228'){mon="3";tommrow="1";} if (monday=='229'){mon="3";tommrow="1";} if (monday=='331'){mon="4";tommrow="1";} if (monday=='430'){mon="5";tommrow="7";} if (monday=='531'){mon="6";tommrow="1";} if (monday=='630'){mon="7";tommrow="1";} if (monday=='731'){mon="8";tommrow="1";} if (monday=='831'){mon="9";tommrow="1";} if (monday=='930'){mon="10";tommrow="1";} if (monday=='1031'){mon="11";tommrow="1";} if (monday=='1130'){mon="12";tommrow="1";} if (monday=='1231'){mon="1";tommrow="1";} xyz=[mon,tommrow]; return xyz; }