Array - 配列
Arrayは配列を取り扱うための機能を備えたオブジェクトです。
概要
チュートリアル
配列のインスタンスを作成するには、コンストラクタ、またはリテラル構文を利用しましょう。手軽なのは後者です。下記は2つとも同じ構造の配列を作ります。
var a = new Array( "a", "b", "c" ) ; // コンストラクタ
var a = [ "a", "b", "c" ] ; // リテラル構文
コンストラクタを利用する際の注意点は、引数を1つだけ指定してそれが数値(n)の場合です。この時、nという要素がある配列ができるのではなく、長さがnだけど要素は空の配列が作られます。
var a = new Array( 3 ) ; // [ 3 ](length=1)ではなく、[](length=3)の配列が作成される
こういったややこしい仕様による意図しない不具合を回避するためにArray.of()というコンストラクタメソッドがあります。この関数はコンストラクタ関数と同じように使えて、引数が1つの数値の場合でも、それを要素として配列を作成してくれます。
// コンストラクタ関数の場合
var a = new Array( 3 ) ; // [ 3 ](length=1)ではなく、[](length=3)の配列が作成される
// Array.of()の場合
var a = Array.of( 3 ) ; // [ 3 ](length=1)の配列が作成される
何はともあれ特別都合が悪いのでなければ、配列はリテラル構文で作成しておけば間違いはないと思います。
プロパティ
prototype.constructor
コンストラクタのArrayを返します。
prototype.length
配列の長さを返すプロパティです。
メソッド
from()
配列に似たオブジェクトから配列を作るコンストラクタメソッドです。
isArray()
引数に指定した値が配列か否かを判定するコンストラクタメソッドです。
of()
配列のインスタンスを作るコンストラクタメソッドです。
prototype.concat()
引数に指定した値を元に配列に追加した新しい配列を返します。
prototype.copyWithin()
配列の一部分をコピーして、そのまま別部分に上書きするメソッドです。
prototype.entries()
配列からIteratorを作成するメソッドです。
prototype.every()
配列の全ての要素が、指定した条件を満たしているか否かを確認するメソッドです。
prototype.fill()
配列の一部を固定値で埋めるメソッドです。
prototype.filter()
配列から条件を満たさない要素を取り除くメソッドです。
prototype.find()
配列から条件を満たす値を取得するメソッドです。
prototype.findIndex()
配列から条件を満たす要素のインデックス番号を取得するメソッドです。
prototype.forEach()
配列の各要素を材料に処理を実行するメソッドです。
prototype.includes()
配列に指定した要素が存在するか検索するメソッドです。
prototype.indexOf()
配列にある値が存在するか前方から検索し、最初にヒットしたインデックス番号を返すメソッドです。
prototype.join()
配列の各要素を連結した文字列を返すメソッドです。
prototype.keys()
配列の各キーで構成された新しいIteratorを返すメソッドです。
prototype.lastIndexOf()
配列にある値が存在するか後方から検索し、最初にヒットしたインデックス番号を返すメソッドです。
prototype.map()
配列の各要素に関数を実行し、その返り値で構成された新しい配列を作成するメソッドです。
prototype.pop()
配列の末尾の要素を削除するメソッドです。
prototype.push()
配列の末尾に要素を追加するメソッドです。
prototype.reduce()
配列の要素を前方から後方にかけて簡約化するメソッドです。
prototype.reduceRight()
配列の要素を後方から前方にかけて簡約化するメソッドです。
prototype.reverse()
配列を逆順にするメソッドです。
prototype.shift()
配列の先頭の要素を削除するメソッドです。
prototype.slice()
配列の一部を切り取るメソッドです。
prototype.some()
配列のいずれかの要素が指定した条件を満たしているか否かを確認するメソッドです。
prototype.sort()
配列を任意のルールでソートするメソッドです。
prototype.splice()
配列の一部を置換するメソッドです。
prototype.toLocaleString()
配列をローカライズした文字列に変換した値を取得するメソッドです。
prototype.toString()
配列を文字列に変換した値を取得するメソッドです。
prototype.unshift()
配列の先頭に要素を追加するメソッドです。
prototype.values()
配列の各値で構成された新しいIteratorを返すメソッドです。
サポート状況
Features | Chrome | Firefox | Safari | Edge | IE | Opera | iOS Safari | Android |
---|---|---|---|---|---|---|---|---|
Array | ● | ● | ● | ● | ● | ● | ● | ● |
from() | ● 45+ | ● 32+ | ● 9.1+ | ● | × | ● 32+ | ● 9.1+ | × |
isArray() | ● | ● | ● 5.1+ | ● | ● 9+ | ● | ● | ● |
of() | ● 45+ | ● 25+ | ● 9.1+ | ● | × | ● 32+ | ● 9.1+ | × |
prototype | ● | ● | ● | ● | ● | ● | ● | ● |
constructor | ● | ● | ● | ● | ● 9+ | ● | ● | ● |
length | ● | ● | ● | ● | ● | ● | ● | ● |
concat() | ● | ● | ● | ● | ● | ● | ● | ● |
copyWithin() | ● 45+ | ● 32+ | ● 9.1+ | ● | × | ● 32+ | ● 9.1+ | × |
entries() | ● 38+ | ● 28+ | ● 7.1+ | ● | × | ● 25+ | ● 8.3+ | × |
every() | ● | ● | ● | ● | ● 9+ | ● | ● | ● |
fill() | ● 45+ | ● 31+ | ● 7.1+ | ● | × | ● 32+ | ● 8.3+ | × |
filter() | ● | ● | ● | ● | ● 9+ | ● | ● | ● |
find() | ● 45+ | ● 25+ | ● 7.1+ | ● | × | ● 32+ | ● 8.3+ | × |
findIndex() | ● 45+ | ● 25+ | ● 7.1+ | ● | × | ● 32+ | ● 8.3+ | × |
forEach() | ● | ● | ● | ● | ● 9+ | ● | ● | ● |
includes() | ● 47+ | ● 43+ | ● 9.1+ | ● | × | ● 34+ | ● 9.1+ | × |
indexOf() | ● | ● | ● | ● | ● 9+ | ● | ● | ● |
join() | ● | ● | ● | ● | ● | ● | ● | ● |
keys() | ● 38+ | ● 28+ | ● 7.1+ | ● | × | ● 25+ | ● 8.3+ | × |
lastIndexOf() | ● | ● | ● | ● | ● 9+ | ● | ● | ● |
map() | ● | ● | ● | ● | ● 9+ | ● | ● | ● |
pop() | ● | ● | ● | ● | ● | ● | ● | ● |
push() | ● | ● | ● | ● | ● | ● | ● | ● |
reduce() | ● | ● | ● | ● | ● 9+ | ● | ● | ● |
reduceRight() | ● | ● | ● | ● | ● 9+ | ● | ● | ● |
reverse() | ● | ● | ● | ● | ● | ● | ● | ● |
shift() | ● | ● | ● | ● | ● | ● | ● | ● |
slice() | ● | ● | ● | ● | ● | ● | ● | ● |
some() | ● | ● | ● | ● | ● 9+ | ● | ● | ● |
sort() | ● | ● | ● | ● | ● | ● | ● | ● |
splice() | ● | ● | ● | ● | ● | ● | ● | ● |
toLocaleString() | ● | ● | ● | ● | ● | ● | ● | ● |
toString() | ● | ● | ● | ● | ● | ● | ● | ● |
unshift() | ● | ● | ● | ● | ● | ● | ● | ● |
values() | × | × | ● 9.1+ | ● | × | × | ● 9.1+ | × |
関連記事
- Promise
- Promiseは、非同期処理が完了した後に、あらかじめ指定しておいた処理を行なうためのオブジェクトです。非同期処理が成功した時、失敗した時で処理を振り分けられます。このオブジェクトを利用することで、順序を守って処理が行なわれます。
- Array.prototype.fill()
- Array.prototype.fill()は、配列の一部を固定値で埋めるメソッドです。返り値を得られますが、元の配列も変更されます。
- Array.prototype.length
- Array.prototype.lengthは、配列の長さを返すプロパティです。長さとは「要素の個数」ではなく、最後の要素のインデックス番号に1を足した数値です。
- Array.prototype.join()
- Array.prototype.join()は、配列の各要素を連結した文字列を返すメソッドです。要素と要素の間に挿入する区切り文字を指定できます。なお、undefined、nullは空文字に変換されます。