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;
}