プロパティ

配列のプロパティには以下のようなものがあります。

length

配列の要素数を整数で返します。MAX値は2の32乗(正符号)未満の値。

var foo = ['foo', 'bar', 'baz'];
console.log(foo.length);  // 3が返る

配列のlengthは書き換えが可能です。lengthを書き換える事で配列の中身を制限することができます。便利。

var foo = ['foo', 'bar', 'baz'];
var bar = foo;
bar.length = 2;
console.log(foo);  // ["foo", "bar"]が返る
console.log(bar);  // ["foo", "bar"]が返る

配列の要素数を3から2にすることで、配列の中身が先頭から2要素だけになりました。配列(オブジェクト)は参照渡しなので配列をコピーしてワーク配列を作るときなどは注意が必要。

メソッド

配列のメソッドには以下のようなものがあります。

join

配列の中身を1つの文字列にして返します。引数で要素間のセパレート文字を指定できます。

var foo = ['foo', 'bar', 'baz'];
console.log(foo.join());     // foo,bar,baz が返る(セパレート未指定)
console.log(foo.join('+'));  // foo+bar+baz が返る(セパレート指定)

reverse

配列の要素の順番を反転させます。配列の中身もその状態で書き換わります。

var foo = ['foo', 'bar', 'baz'];
console.log(foo.reverse());  // ["baz", "bar", "foo"] が返る

sort

配列の要素を文字列比較して辞書順に並び替えます。

var foo = ['foo', 'bar', 'baz'];
console.log(foo.sort());  // ["bar", "baz", "foo"] が返る
var bar = [15, 2, 3];
console.log(bar.sort());  // [15, 2, 3] が返る
var baz = ['15', '2', '3'];
console.log(baz.sort());  // ["15", "2", "3"] が返る

pop

配列の最後の要素を取り出して配列を書き込みます。配列の要素がない場合には、undefinedが返ります。

var foo = ['foo', 'bar', 'baz'];
console.log(foo.pop());  // baz が返る
console.log(foo);        // ["foo", "bar"] が返る
console.log(foo.pop());  // bar が返る
console.log(foo);        // ["foo"] が返る
console.log(foo.pop());  // foo が返る
console.log(foo);        // [] が返る
console.log(foo.pop());  // undefined が返る

shift

配列の最初の要素を取り出して配列を書き込みます。配列の要素がない場合には、undefinedが返ります。

var foo = ['foo', 'bar', 'baz'];
console.log(foo.shift());  // foo が返る
console.log(foo);          // ["bar", "baz"] が返る
console.log(foo.shift());  // bar が返る
console.log(foo);          // ["baz"] が返る
console.log(foo.shift());  // baz が返る
console.log(foo);          // [] が返る
console.log(foo.shift());  // undefined が返る

push

配列の最後に要素を追加します。カンマ区切りで1つ以上の要素を追加する事ができます。

var foo = ['foo', 'bar', 'baz'];
foo.push('foobaz', 'barbaz');
console.log(foo);  // ["foo", "bar", "baz", "foobaz", "barbaz"] が返る

unshift

配列の最初に要素を追加します。カンマ区切りで1つ以上の要素を追加する事ができます。

var foo = ['foo', 'bar', 'baz'];
foo.unshift('foobaz', 'barbaz');
console.log(foo);  // ["foobaz", "barbaz", "foo", "bar", "baz"] が返る

concat

配列を他の配列の連結します。1つ以上の配列をパラメータに渡して新い配列を返します。元の配列は書き換わりません。

var foo = ['foo', 'bar', 'baz'];
var bar = ['foobar', 'barbaz'];

var baz = foo.concat(bar);
console.log(baz);  // ["foo", "bar", "baz", "foobar", "barbaz"] が返る
console.log(foo);  // ["foo", "bar", "baz"] foo自体は書き変わらない

slice

第1パラメータに要素取得開始位置(添え字番号)、第2パラメータに要素取得終了位置(添え字番号:この番号まででこの番号自身は含まれない)を指定して新しい配列を返します。第2パラメータを省略した場合は配列の最後まで返します。

var foo = ['foo', 'bar', 'baz', 'foobar', 'barbaz'];

console.log(foo.slice(1,4));  // ["bar", "baz", "foobar"] が返る
console.log(foo);             // ["foo", "bar", "baz", "foobar", "barbaz"] が返る

またパラメータには負数を渡すこともできます。負数を渡す事で配列の最後から◯番目の要素を取得という指定ができるようになります。

var foo = ['foo', 'bar', 'baz', 'foobar', 'barbaz'];

console.log(foo.slice(-2));     // ["foobar", "barbaz"] が返る
console.log(foo.slice(1, -1));  // ["bar", "baz", "foobar"] が返る

splice

第1パラメータに要素削除開始位置(添え字番号)、第2パラメータに要素削除終了位置(添え字番号:この番号まででこの番号自身は含まれない)を指定して配列の要素を削除します。第2パラメータを省略した場合は配列の最後まで削除した配列を返します。

var foo = ['foo', 'bar', 'baz', 'foobar', 'barbaz'];

console.log(foo.splice(1,4));  // ["bar", "baz", "foobar", "barbaz"] が返る
console.log(foo);              // ["foo"] が返る

またパラメータには負数を渡すこともできます。負数を渡す事で配列の最後から◯番目の要素を削除という指定ができるようになります。

var foo = ['foo', 'bar', 'baz', 'foobar', 'barbaz'];

console.log(foo.splice(-2));  // ["foobar", "barbaz"] が返る
console.log(foo);             // ["foo", "bar", "baz"] が返る

toString

配列をカンマ区切りの文字列に変換して返します。

var foo = ['foo', 'bar', 'baz'];

console.log(foo.toString());  // foo,bar,baz が返る