とほほのJavaScript入門(配列)

とほほのWWW入門 > とほほのJavaScript入門 > 配列
1999年1月17日版

配列(Array)

Array([n]) (e3/N3)
Array(e1, e2, ...) (e4/N3)
n個の要素を持つ配列、もしくはe1, e2, ...を要素とする配列を作成する。配列の序数は0から始まる。NN3.0は要素は最初nullに初期化されるが、NN4.0以降はundefinedの状態になる。nは省略可能。下記のようにnを超える要素も使用可能だが、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"]);

NNでLANGUAGE属性にJavaScript1.2を指定した場合はnew Array(3)はArray(e1, e2, ...)の形式と解釈され、xx[0]が3という値をもつ単一要素を生成する。JavaScript1.3ではJavaScript1.1の仕様に戻された。

NN2.0でもArray()を使用可能だが、動作が不安定なので、次のような関数を自分で作成して用いなくてはならない。NN2.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";
array
new Array()の戻り値。

array.length (e3/N3)
配列要素の個数を返す。
    for (i = 0; i < xx.length; i++) { alert(xx[i]); }

array.concat(array2) (e4/N4)
arrayarray2を連結した配列を返す。元の配列(array)は変更されない。引数は複数も可。

array.join([separator]) (e4/N3)
arrayの各要素の値をseparatorで連結した文字列を返す。separatorを省略した場合はカンマ(,)で連結されるが、JavaScriptのバージョンによって動作が異なるので省略しない方が無難。

array.pop() (N4)
配列から最後の要素を削除する。

array.push(e1, e2, ...) (N4)
配列にe1, e2などを値とする要素を追加する。JavaScript1.2までは追加した要素の内最後のものを返すが、JavaScript1.3では追加後の要素の個数を返す。

array.reverse() (e4/N3)
配列の要素を逆順に並べ替えた物を返す。

array.shift() (N4)
配列から最初の要素を削除し、その値を返す。

array.slice(start[, end]) (e4/N4)
start番目〜end番目までの要素を抜き出した配列を返す。

array.splice(start, n, e1, e2, ...) (N4)
start番目の要素からn個を削除し、その代わりにe1, e2, ...を埋め込む。NNのJavaScript1.2では削除された要素を返すが、JavaScript1.3では削除された要素を含むすべての要素を返す。

array.sort([func]) (e4/N4)
配列をソートしてその結果の配列を返す。array自身もソートされる。funcで比較関数を指定することも可能。比較関数では負数、0、正数によって順序を返す。未定義の配列はNN3.0では"null"という文字列と見なされ、NN4.0やIE4.0ではundefinedとしてソートの対象から除外される。
    function func(a, b) { return(b - a); }
    xx = new Array(3, 7, 8, 1);
    alert(xx.sort(func));

array.toString() (e3/N3)
配列を文字列に変換する。

array.unshift(e1, e2, ...) (N4)
配列の最初にe1, e2, ...を値とする要素を加え、結果の長さを返す。

Copyright (C) 1996-1999 とほほ
http://wakusei.cplaza.ne.jp/twn/wwwjsarr.htm