JavaScript の Array オブジェクトは、配列を構築するためのグローバルオブジェクトで、配列とは複数の要素の集合を格納管理するリスト構造です。
配列を作成する
var fruits = ["りんご", "バナナ"]; console.log(fruits.length); // 2
配列の要素を取得する
var first = fruits[0]; // りんご var last = fruits[fruits.length - 1]; // バナナ
配列のループ処理
fruits.forEach(function(item, index, array) {
console.log(item, index);
});
// りんご 0
// バナナ 1
配列の末尾に要素を追加する
var newLength = fruits.push("みかん");
// ["りんご", "バナナ", "みかん"]
配列の末尾の要素を削除する
var last = fruits.pop(); // 配列の末尾の要素 "みかん" を削除 // ["りんご", "バナナ"];
配列の先頭の要素を削除する
var first = fruits.shift(); // 配列の先頭の要素"りんご" を削除 // ["バナナ"];
配列の先頭に要素を追加する
var newLength = fruits.unshift("いちご") // 配列の先頭に追加
// ["いちご", "バナナ"];
要素のインデックスを取得する
fruits.push("マンゴー");
// ["いちご", "バナナ", "マンゴー"]
var pos = fruits.indexOf("バナナ");
// 1
インデックス位置を指定して要素を削除する
var removedItem = fruits.splice(pos, 1); // 指定位置の要素を削除できます // ["いちご", "マンゴー"]
インデックス位置から複数の要素を削除する
var vegetables = ['Cabbage', 'Turnip', 'Radish', 'Carrot']; console.log(vegetables); // ["Cabbage", "Turnip", "Radish", "Carrot"] var pos = 1, n = 2; var removedItems = vegetables.splice(pos, n); // 複数の要素を削除するには、n で削除する要素数を定義します // 指定位置(pos)以降から n 個分の要素が削除されます console.log(vegetables); // ["Cabbage", "Carrot"] (元の配列が変化) console.log(removedItems); // ["Turnip", "Radish"]
配列をコピーする
var shallowCopy = fruits.slice(); // 配列のコピーを作成できます // ["いちご", "マンゴー"]
構文
[element0, element1, ..., elementN] new Array(element0, element1[, ...[, elementN]]) new Array(arrayLength)
引数
elementN- JavaScript の配列は、与えられた要素で初期化されます。ただし、
Arrayコンストラクタに引数が 1 個だけ与えられ、それが数値である場合を除きます (下記の arrayLength 引数を参照)。これは、Arrayコンストラクタで作成された JavaScript 配列にのみ当てはまる特殊なケースで、ブラケット構文 ("[]") で生成された配列リテラルには当てはまらないことに注意してください。 arrayLengthArrayコンストラクタに 0 から 232-1 までの間の整数値 1 個が与えられた場合、その数値の要素数を持つ新しい JavaScript 配列が生成されます(注: これはarrayLength分の空のスロットがある配列を意味します。スロットに実際のundefined値があるわけではありません)。それ以外の数値が与えられた場合、RangeErrorが throw されます。
説明
配列は、リストのようなオブジェクトであり、配列に対して横断的な操作や変更を行う組み込みのメソッドを持ちます。JavaScript の配列は、要素数も要素の型も固定されていません。配列のサイズは常に可変であり、データを連続しない位置に格納できるため、JavaScript の配列は密であることが保証されていません (プログラマの使い方次第です)。一般に、これらは便利な特性ではありますが、固定された配列が必要であれば、Typed Array の使用を検討するのも良いでしょう。
配列は(連想配列のように)要素のインデックスに文字列を使うことはできず、整数を使う必要があります。ブラケット構文(またはドット構文)を使った非整数の設定・取得は、配列リストそのものからではなく、その配列のオブジェクトプロパティコレクションに紐付いた変数に対して行われます。配列のオブジェクトプロパティと配列リストの要素は異なり、配列の走査や変換の操作は名前付きプロパティに適用されません。
配列要素へのアクセス
JavaScript の配列のインデックスは 0 から始まるので、配列の最初の要素はインデックス 0 にあります。そして、最後の要素のインデックスは length プロパティの値から 1 を引いた値になります。不正なインデックス番号を使った場合は undefined を返します。
var arr = ["最初の要素", "2 番目の要素", "最後の要素"]; console.log(arr[0]); // ログ : "最初の要素" console.log(arr[1]); // ログ : "2 番目の要素" console.log(arr[arr.length - 1]); // ログ : "最後の要素"
toString が一つのプロパティであるように、配列における配列要素は Array オブジェクトのプロパティです。しかし、次のように配列にアクセスしようとすると、プロパティ名が正しくないため、構文エラーが投げられる事に注意してください:
console.log(arr.0); // 構文エラー
これは、JavaScript の配列とそのプロパティに限った話ではありません。数字から始まるプロパティは、ドット演算子を用いて参照できないため、ブラケット記法を用いる必要があります。例えば '3d' というプロパティを持つオブジェクトがある場合は、ドット記法ではなくブラケット記法を用いて参照しなければなりません。この類似点を、以下 2 つのコード例で示します:
var years = [1950, 1960, 1970, 1980, 1990, 2000, 2010]; console.log(years.0); // 構文エラー console.log(years[0]); // 正しく動作
renderer.3d.setTexture(model, 'character.png'); // 構文エラー renderer['3d'].setTexture(model, 'character.png'); // 正しく動作
3d の例で、'3d' は引用符で括らなければなりません。配列要素へのアクセスにも years[2] でなく years['2'] を使う事ができますが、必要になることはないでしょう。years[2] の 2 は最終的に、JavaScript エンジンが内部的に toString メソッドで型変換することで文字列にされます。これは '2' と '02' が years オブジェクトの異なる場所を指すようにするためでです。このため、以下の例は true がログ出力されます:
console.log(years['2'] != years['02']);
同様に、オブジェクトのプロパティ名が偶然にも予約語だった(!) 場合は、ブラケット記法で文字列リテラルを使うことでのみアクセスできます (ただ、少なくとも FireFox 40.0a2 では、ドット記法でアクセスできてしまいます):
var promise = {
'var' : 'text',
'array': [1, 2, 3, 4]
};
console.log(promise['var']);
length と数値プロパティとの関係
JavaScript 配列の length プロパティと数値プロパティは関連しています。配列の組み込みメソッド (join()、slice()、indexOf() 等) は、呼び出された時、配列の length プロパティの値を考慮します。また、push()、splice()等の他のメソッドも、配列の length プロパティを更新します。
var fruits = [];
fruits.push('バナナ', 'りんご', 'もも');
console.log(fruits.length); // 3
有効なインデックスを持つ JavaScript 配列の現在のサイズに収まらない位置に要素を追加すると、配列はそれを収められるサイズに拡張され、length プロパティも更新されます。
fruits[5] = 'マンゴー'; console.log(fruits[5]); // 'マンゴー' console.log(Object.keys(fruits)); // ['0', '1', '2', '5'] console.log(fruits.length); // 6
length プロパティを直接設定して増やすと以下のように隙間ができます。
fruits.length = 10; console.log(Object.keys(fruits)); // ['0', '1', '2', '5'] console.log(fruits.length); // 10
length プロパティの数を減らすと、要素が削除されます。
fruits.length = 2; console.log(Object.keys(fruits)); // ['0', '1'] console.log(fruits.length); // 2
これらについては Array.length ページで詳しく解説します。
match の結果を利用して配列を作成
正規表現と文字列の match の結果から配列を生成できます。この配列には、プロパティと、マッチに関する情報を提供する要素を持ちます。このような配列は、RegExp.exec、String.match、そして String.replace の戻り値です。これらのプロパティと要素を理解するために、以下の例を見て表を参照してください。
// 1 文字の d、1 文字以上の b、1 文字の d にマッチします
// マッチした b およびそれに続く d を記憶します
// 大文字小文字は区別しません
var myRe = /d(b+)(d)/i;
var myArray = myRe.exec('cdbBdbsbz');
このマッチから返されるプロパティと要素は次の通りです:
| プロパティまたは要素 | 説明 | 例 |
input |
正規表現がマッチした、元の文字列を反映する読み取り専用プロパティです。 | cdbBdbsbz |
index |
文字列中でマッチした場所を、0 から始まるインデックスで示す読み取り専用プロパティです。 | 1 |
[0] |
最後にマッチした文字列を指定する読み取り専用の要素です。 | dbBd |
[1], ...[n] |
正規表現に含まれる場合、括弧で囲まれたマッチした部分文字列を指定する読み取り専用の要素です。括弧で囲まれた部分文字列の数は無制限です。 | [1]: bB [2]: d |
プロパティ
Array.lengthArrayコンストラクタの長さ。値は 1 です。get Array[@@species]- コンストラクタ関数。派生オブジェクトを生成する時に使われます。
Array.prototype- これを使うとすべての Array オブジェクトにプロパティを追加することができます。
メソッド
Array.from()- 配列型 (array-like) や反復型 (iterable) オブジェクトから、新しい
Arrayインスタンスを生成します。 Array.isArray()- 配列であれば true を、配列でなければ false を返します。
Array.of()- 可変個の引数から新しい
Arrayインスタンスを生成します。引数の数や型による特別処理はありません。
Array インスタンス
すべての Array インスタンスは、Array.prototype から継承します。コンストラクタの prototype オブジェクトを変更すると、すべての Array インスタンスに影響を及ぼすことができます。
プロパティ
Array.prototype.constructor- オブジェクトの prototype を生成する関数を指定します。
Array.prototype.length- 配列内の要素数を反映します。
Array.prototype[@@unscopables]withバインディングのスコープから除外されるプロパティ名を保持するシンボル。
メソッド
変更メソッド
これらのメソッドは、配列を書き換えます。
Array.prototype.copyWithin()- 配列内で配列内の連続した要素をコピーします。
Array.prototype.fill()- 配列内の指定した開始位置から終了位置までの要素を固定値で埋めます。
Array.prototype.pop()- 配列から最後の要素を取り除き、戻り値として返します。
Array.prototype.push()- 配列の最後に 1 個以上の要素を追加し、新しい配列の長さを返します。
Array.prototype.reverse()- 配列の要素の順番を逆転させます (最初の要素は最後に、最後の要素は最初になります)。
Array.prototype.shift()- 配列から最初の要素を取り除き、その要素を返します。
Array.prototype.sort()- 配列内で要素を整列し、配列を返します。
Array.prototype.splice()- 配列に対して複数の要素を追加したり取り除いたりします。
Array.prototype.unshift()- 配列の最初に 1 個以上の要素を追加し、配列の変更後の長さを返します。
アクセサ メソッド
これらのメソッドは呼び出し対象の配列を書き換えず、配列を何らかの形で表したものを返します。
Array.prototype.concat()- この配列に他の配列や値を結合して新しい配列を返します。
Array.prototype.includes()- この配列が特定の要素を含むかどうか判定し、その結果を
trueまたはfalseで返します。 Array.prototype.indexOf()- 指定された値と等しい値を持つ最初の (添字の一番小さい) 要素の添字を返します。見つからない場合、-1 を返します。
Array.prototype.join()- 配列のすべての要素を結合した文字列を返します。
Array.prototype.lastIndexOf()- 指定された値と等しい値を持つ最後の (添字の一番大きい) 要素の添字を返します。見つからない場合、-1 を返します。
Array.prototype.slice()- 配列の一部を取り出して新しい配列として返します。
Array.prototype.toSource()- 指定された配列を表す配列リテラルを返します。この値を使って新しい配列を作れます。
Object.prototype.toSource()メソッドを上書きしています。 Array.prototype.toString()- 配列とその要素を表す文字列を返します。
Object.prototype.toString()メソッドを上書きしています。 Array.prototype.toLocaleString()- 配列とその要素を表すロケールに従った文字列を返します。
Object.prototype.toLocaleString()メソッドを上書きしています。
反復メソッド
いくつかのメソッドは、配列を処理する際にコールバックされる関数を引数に取ります。これらのメソッドが呼ばれる時、配列の length 値を一時記憶するため、コールバック中にこの長さを超えて追加された要素にはアクセスしません。配列に対するその他の変更 (要素の値の書き換えや削除) は、変更された要素にメソッドが後でアクセスした場合の操作結果に影響を及ぼす可能性があります。そのような場合におけるこれらのメソッドの振る舞いは正確に定義されていますが、コードの読者を混乱させないよう、その振る舞いに依存すべきではありません。配列を変化させなければならない場合は、代わりに新しい配列にコピーしてください。
Array.prototype.entries()- 新しい
Array Iteratorオブジェクトを返します。このオブジェクトは、配列中の各インデックスに対する key/value ペアを保持しています。 Array.prototype.every()- 指定したテスト関数を配列中のすべての要素が満たした場合に
trueを返します。 Array.prototype.filter()- 指定したフィルタリング関数が
trueを返す、配列中の要素を格納した新しい配列を生成します。 Array.prototype.find()- 指定したテスト関数を満たす、配列中の要素の値を返します。1 個も見つからない場合は
undefinedを返します。 Array.prototype.findIndex()- 指定したテスト関数を満たす、配列中の要素のインデックスを返します。1 個も見つからない場合は
-1を返します。 Array.prototype.forEach()- 配列中のそれぞれの要素について関数を呼び出します。
Array.prototype.keys()- 新しい
Array Iteratorを返します。このオブジェクトは配列中の各インデックスのキーを保持します。 Array.prototype.map()- 配列内のすべての要素に対して与えられた関数を呼び出し、その結果を格納した新しい配列を生成します。
Array.prototype.reduce()- アキュムレータと配列内のすべての要素に対して (左から右の順で) 関数を適用し、単一の値に還元します。
Array.prototype.reduceRight()- アキュムレータと配列内のすべての要素に対して (右から左の順で) 関数を適用し、単一の値に還元します。
Array.prototype.some()- 指定したテスト関数を配列中の少なくとも 1 個の要素が満たした場合に
trueを返します。 Array.prototype.values()- 新しい
Array Iteratorオブジェクトを返します。このオブジェクトは、配列中の各インデックスの値を保持します。 Array.prototype[@@iterator]()- 新しい
Array Iteratorオブジェクトを返します。このオブジェクトは、配列中の各インデックスの値を保持します。
Array ジェネリックメソッド
Array ジェネリックは非標準、非推奨であり、近い将来に削除される見込みです。
文字列や他の配列のようなオブジェクト (関数の arguments など) に Array のメソッドを適用したいと考える場合があります。こうすると、文字列を文字の配列として扱えます (あるいは、配列ではないものを配列として扱う)。例えば、変数 str に含まれる文字がすべて英字であることをチェックするには、次のように書きます:
function isLetter(character) {
return character >= 'a' && character <= 'z';
}
if (Array.prototype.every.call(str, isLetter)) {
console.log("The string '" + str + "' contains only letters!");
}
この記法は、どちらかというと無駄であるため、JavaScript 1.6 で汎用的な簡易表記が導入されました:
if (Array.every(str, isLetter)) {
console.log("The string '" + str + "' contains only letters!");
}
ジェネリックメソッド は String でも使用できます。
これらは現在 ECMAScript 標準に含まれていませんし、Gecko以外のブラウザーではサポートされていません。標準による代替手段としては、Array.from() を使って正規の配列に変換することです。と言っても、Array.from() は古いブラウザーではサポートされていませんけど。
if (Array.from(str).every(isLetter)) {
console.log("The string '" + str + "' contains only letters!");
}
例
配列を生成する
次の例では、空の配列「msgArray」を生成し、msgArray[0] と msgArray[99] に値を設定、その後配列の要素数が 100 である事を確認しています。
var msgArray = [];
msgArray[0] = 'Hello';
msgArray[99] = 'world';
if (msgArray.length === 100) {
console.log("配列の length は 100 です。");
}
2 次元配列を生成する
以下では、文字列の 2 次元配列としてチェスボードを生成しています。最初の動きは (6,4) の 'P' を (4,4) にコピーすることでなされます。古い位置 (6,4) は空白にされます。
var board = [
['R','N','B','Q','K','B','N','R'],
['P','P','P','P','P','P','P','P'],
[' ',' ',' ',' ',' ',' ',' ',' '],
[' ',' ',' ',' ',' ',' ',' ',' '],
[' ',' ',' ',' ',' ',' ',' ',' '],
[' ',' ',' ',' ',' ',' ',' ',' '],
['p','p','p','p','p','p','p','p'],
['r','n','b','q','k','b','n','r'] ];
console.log(board.join('\n') + '\n\n');
// キングの前のポーンを 2 つ前へ移動
board[4][4] = board[6][4];
board[6][4] = ' ';
console.log(board.join('\n'));
出力を以下に示します:
R,N,B,Q,K,B,N,R P,P,P,P,P,P,P,P , , , , , , , , , , , , , , , , , , , , , , , , , , , , p,p,p,p,p,p,p,p r,n,b,q,k,b,n,r R,N,B,Q,K,B,N,R P,P,P,P,P,P,P,P , , , , , , , , , , , , , , , , , ,p, , , , , , , , , , p,p,p,p, ,p,p,p r,n,b,q,k,b,n,r
配列を使って値のセットを表にする
values = [];
for (var x = 0; x < 10; x++){
values.push([
2 ** x,
2 * x ** 2
])
};
console.table(values)
結果は次のようになります。
0 1 0 1 2 2 2 4 8 3 8 18 4 16 32 5 32 50 6 64 72 7 128 98 8 256 128 9 512 162
(最初の列は要素のインデックスです)
仕様
| 仕様 | 策定状況 | コメント |
|---|---|---|
| ECMAScript 1st Edition (ECMA-262) | 標準 | 初期定義 |
| ECMAScript 5.1 (ECMA-262) Array の定義 |
標準 | 新メソッド追加: Array.isArray, indexOf, lastIndexOf, every, some, forEach, map, filter, reduce, reduceRight |
| ECMAScript 2015 (6th Edition, ECMA-262) Array の定義 |
標準 | 新メソッド追加: Array.from, Array.of, find, findIndex, fill, copyWithin |
| ECMAScript 2016 (ECMA-262) Array の定義 |
標準 | 新メソッド追加: Array.prototype.includes() |
| ECMAScript (ECMA-262) Array の定義 |
現行の標準 |
ブラウザー実装状況
| デスクトップ | モバイル | サーバー | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Array | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 4 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
Array() constructor | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 4 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
concat | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5.5 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
copyWithin | Chrome 完全対応 45 | Edge 完全対応 12 | Firefox 完全対応 32 | IE 未対応 なし | Opera 完全対応 32 | Safari 完全対応 9 | WebView Android 完全対応 45 | Chrome Android 完全対応 45 | Firefox Android 完全対応 32 | Opera Android 完全対応 32 | Safari iOS 完全対応 9 | Samsung Internet Android 完全対応 5.0 | nodejs 完全対応 4.0.0 |
entries | Chrome 完全対応 38 | Edge 完全対応 12 | Firefox 完全対応 28 | IE 未対応 なし | Opera 完全対応 25 | Safari 完全対応 8 | WebView Android 完全対応 38 | Chrome Android 完全対応 38 | Firefox Android 完全対応 28 | Opera Android 完全対応 25 | Safari iOS 完全対応 8 | Samsung Internet Android 完全対応 3.0 | nodejs 完全対応 0.12 |
every | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1.5 | IE 完全対応 9 | Opera 完全対応 9.5 | Safari 完全対応 3 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
fill | Chrome 完全対応 45 | Edge 完全対応 12 | Firefox 完全対応 31 | IE 未対応 なし | Opera 完全対応 32 | Safari 完全対応 8 | WebView Android 完全対応 45 | Chrome Android 完全対応 45 | Firefox Android 完全対応 31 | Opera Android 完全対応 32 | Safari iOS 完全対応 8 | Samsung Internet Android 完全対応 5.0 | nodejs
完全対応
4.0.0
|
filter | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1.5 | IE 完全対応 9 | Opera 完全対応 9.5 | Safari 完全対応 3 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
find | Chrome 完全対応 45 | Edge 完全対応 12 | Firefox 完全対応 25 | IE 未対応 なし | Opera 完全対応 32 | Safari 完全対応 8 | WebView Android 完全対応 45 | Chrome Android 完全対応 45 | Firefox Android 完全対応 4 | Opera Android 完全対応 32 | Safari iOS 完全対応 8 | Samsung Internet Android 完全対応 5.0 | nodejs
完全対応
4.0.0
|
findIndex | Chrome 完全対応 45 | Edge 完全対応 12 | Firefox 完全対応 25 | IE 未対応 なし | Opera 完全対応 32 | Safari 完全対応 8 | WebView Android 完全対応 45 | Chrome Android 完全対応 45 | Firefox Android 完全対応 4 | Opera Android 完全対応 32 | Safari iOS 完全対応 8 | Samsung Internet Android 完全対応 5.0 | nodejs
完全対応
4.0.0
|
flat | Chrome 完全対応 69 | Edge 完全対応 79 | Firefox 完全対応 62 | IE 未対応 なし | Opera 完全対応 56 | Safari 完全対応 12 | WebView Android 完全対応 69 | Chrome Android 完全対応 69 | Firefox Android 完全対応 62 | Opera Android 完全対応 48 | Safari iOS 完全対応 12 | Samsung Internet Android 完全対応 10.0 | nodejs 完全対応 11.0.0 |
flatMap | Chrome 完全対応 69 | Edge 完全対応 79 | Firefox 完全対応 62 | IE 未対応 なし | Opera 完全対応 56 | Safari 完全対応 12 | WebView Android 完全対応 69 | Chrome Android 完全対応 69 | Firefox Android 完全対応 62 | Opera Android 完全対応 48 | Safari iOS 完全対応 12 | Samsung Internet Android 完全対応 10.0 | nodejs 完全対応 11.0.0 |
forEach | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1.5 | IE 完全対応 9 | Opera 完全対応 9.5 | Safari 完全対応 3 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
from | Chrome 完全対応 45 | Edge 完全対応 12 | Firefox 完全対応 32 | IE 未対応 なし | Opera 完全対応 32 | Safari 完全対応 9 | WebView Android 完全対応 45 | Chrome Android 完全対応 45 | Firefox Android 完全対応 32 | Opera Android 完全対応 32 | Safari iOS 完全対応 9 | Samsung Internet Android 完全対応 5.0 | nodejs 完全対応 4.0.0 |
includes | Chrome 完全対応 47 | Edge 完全対応 14 | Firefox 完全対応 43 | IE 未対応 なし | Opera 完全対応 34 | Safari 完全対応 9 | WebView Android 完全対応 47 | Chrome Android 完全対応 47 | Firefox Android 完全対応 43 | Opera Android 完全対応 34 | Safari iOS 完全対応 9 | Samsung Internet Android 完全対応 5.0 | nodejs
完全対応
6.0.0
|
indexOf | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1.5 | IE 完全対応 9 | Opera 完全対応 9.5 | Safari 完全対応 3 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
isArray | Chrome 完全対応 5 | Edge 完全対応 12 | Firefox 完全対応 4 | IE 完全対応 9 | Opera 完全対応 10.5 | Safari 完全対応 5 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 14 | Safari iOS 完全対応 5 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
join | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5.5 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
keys | Chrome 完全対応 38 | Edge 完全対応 12 | Firefox 完全対応 28 | IE 未対応 なし | Opera 完全対応 25 | Safari 完全対応 8 | WebView Android 完全対応 38 | Chrome Android 完全対応 38 | Firefox Android 完全対応 28 | Opera Android 完全対応 25 | Safari iOS 完全対応 8 | Samsung Internet Android 完全対応 3.0 | nodejs 完全対応 0.12 |
lastIndexOf | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1.5 | IE 完全対応 9 | Opera 完全対応 9.5 | Safari 完全対応 3 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
length | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 4 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
map | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1.5 | IE 完全対応 9 | Opera 完全対応 9.5 | Safari 完全対応 3 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
observe | Chrome 未対応 36 — 52 | Edge 未対応 なし | Firefox 未対応 なし | IE 未対応 なし | Opera 未対応 なし | Safari 未対応 なし | WebView Android 未対応 なし | Chrome Android 未対応 なし | Firefox Android 未対応 なし | Opera Android 未対応 なし | Safari iOS 未対応 なし | Samsung Internet Android 未対応 なし | nodejs 未対応 なし |
of | Chrome 完全対応 45 | Edge 完全対応 12 | Firefox 完全対応 25 | IE 未対応 なし | Opera 完全対応 26 | Safari 完全対応 9 | WebView Android 完全対応 39 | Chrome Android 完全対応 39 | Firefox Android 完全対応 25 | Opera Android 完全対応 26 | Safari iOS 完全対応 9 | Samsung Internet Android 完全対応 4.0 | nodejs 完全対応 4.0.0 |
pop | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5.5 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
push | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5.5 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
reduce | Chrome 完全対応 3 | Edge 完全対応 12 | Firefox 完全対応 3 | IE 完全対応 9 | Opera 完全対応 10.5 | Safari 完全対応 5 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 14 | Safari iOS 完全対応 4 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
reduceRight | Chrome 完全対応 3 | Edge 完全対応 12 | Firefox 完全対応 3 | IE 完全対応 9 | Opera 完全対応 10.5 | Safari 完全対応 5 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 14 | Safari iOS 完全対応 4 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
reverse | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5.5 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
shift | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5.5 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
slice | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 4 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
some | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1.5 | IE 完全対応 9 | Opera 完全対応 9.5 | Safari 完全対応 3 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
sort | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5.5 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
splice | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE
完全対応
5.5
| Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
toLocaleString | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5.5 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
toSource | Chrome 未対応 なし | Edge 未対応 なし | Firefox
未対応
1 — 74
| IE 未対応 なし | Opera 未対応 なし | Safari 未対応 なし | WebView Android 未対応 なし | Chrome Android 未対応 なし | Firefox Android 完全対応 4 | Opera Android 未対応 なし | Safari iOS 未対応 なし | Samsung Internet Android 未対応 なし | nodejs 未対応 なし |
toString | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 4 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 ≤37 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
unobserve | Chrome 未対応 36 — 52 | Edge 未対応 なし | Firefox 未対応 なし | IE 未対応 なし | Opera 未対応 なし | Safari 未対応 なし | WebView Android 未対応 なし | Chrome Android 未対応 なし | Firefox Android 未対応 なし | Opera Android 未対応 なし | Safari iOS 未対応 なし | Samsung Internet Android 未対応 なし | nodejs 未対応 なし |
unshift | Chrome 完全対応 1 | Edge 完全対応 12 | Firefox 完全対応 1 | IE 完全対応 5.5 | Opera 完全対応 4 | Safari 完全対応 1 | WebView Android 完全対応 1 | Chrome Android 完全対応 18 | Firefox Android 完全対応 4 | Opera Android 完全対応 10.1 | Safari iOS 完全対応 1 | Samsung Internet Android 完全対応 1.0 | nodejs 完全対応 0.1.100 |
values | Chrome 完全対応 66 | Edge 完全対応 12 | Firefox 完全対応 60 | IE 未対応 なし | Opera 完全対応 53 | Safari 完全対応 9 | WebView Android 完全対応 66 | Chrome Android 完全対応 66 | Firefox Android 完全対応 60 | Opera Android 完全対応 47 | Safari iOS 完全対応 9 | Samsung Internet Android 完全対応 9.0 | nodejs
完全対応
10.9.0
|
@@iterator | Chrome 完全対応 38 | Edge 完全対応 12 | Firefox
完全対応
36
| IE 未対応 なし | Opera 完全対応 25 | Safari 完全対応 10 | WebView Android 完全対応 38 | Chrome Android 完全対応 38 | Firefox Android
完全対応
36
| Opera Android 完全対応 25 | Safari iOS 完全対応 10 | Samsung Internet Android 完全対応 3.0 | nodejs 完全対応 0.12 |
@@species | Chrome 完全対応 51 | Edge 完全対応 79 | Firefox 完全対応 48 | IE 未対応 なし | Opera 完全対応 38 | Safari 完全対応 10 | WebView Android 完全対応 51 | Chrome Android 完全対応 51 | Firefox Android 完全対応 48 | Opera Android 完全対応 41 | Safari iOS 完全対応 10 | Samsung Internet Android 完全対応 5.0 | nodejs
完全対応
6.5.0
|
@@unscopables | Chrome 完全対応 38 | Edge 完全対応 12 | Firefox 完全対応 48 | IE 未対応 なし | Opera 完全対応 25 | Safari 完全対応 10 | WebView Android 完全対応 38 | Chrome Android 完全対応 38 | Firefox Android 完全対応 48 | Opera Android 完全対応 25 | Safari iOS 完全対応 10 | Samsung Internet Android 完全対応 3.0 | nodejs 完全対応 0.12 |
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応
- 非標準。ブラウザー間の互換性が低い可能性があります。
- 非標準。ブラウザー間の互換性が低い可能性があります。
- 非推奨。新しいウェブサイトでは使用しないでください。
- 非推奨。新しいウェブサイトでは使用しないでください。
- 実装ノートを参照してください。
- 実装ノートを参照してください。
- ユーザーが明示的にこの機能を有効にしなければなりません。
- ユーザーが明示的にこの機能を有効にしなければなりません。
- 非標準の名前を使用しています。
- 非標準の名前を使用しています。