プロパティ
配列のプロパティには以下のようなものがあります。
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 が返る