Array.isArray() メソッドは、渡された値が Array かどうかを判断します。

Array.isArray([1, 2, 3]);  // true
Array.isArray({foo: 123}); // false
Array.isArray('foobar');   // false
Array.isArray(undefined);  // false

構文

Array.isArray(value)

引数

value
チェックするオブジェクト。

返値

値が Array の場合は true です。そうでなければ  false を返します。

解説

値が Array の場合は true が返ります。それ以外の場合は false が返ります。

詳しくは、 “Determining with absolute accuracy whether or not a JavaScript object is an array” を参照してください。 TypedArray のインスタンスが与えられると、常に false が返されます。

// 以下の呼び出しはすべてtrueを返す
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
Array.isArray(new Array('a', 'b', 'c', 'd'));
Array.isArray(new Array(3));
// あまり知られていないものの Array.prototype は配列
Array.isArray(Array.prototype); 

// 以下の呼び出しはすべて false を返す
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
Array.isArray('Array');
Array.isArray(true);
Array.isArray(false);
Array.isArray({ __proto__: Array.prototype });

instanceofisArray

Array のインスタンスをチェックする際、 Array.isArrayiframes で動作するので、 instanceof よりも推奨されます。

var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray(1,2,3); // [1,2,3]

// Correctly checking for Array
Array.isArray(arr);  // true
// Considered harmful, because doesn't work through iframes
arr instanceof Array; // false

ポリフィル

次のコードを他のコードよりも前に記述する事により、ネイティブで実装されていなくても、 Array.isArray() が使用可能になります。

if (!Array.isArray) {
  Array.isArray = function(arg) {
    return Object.prototype.toString.call(arg) === '[object Array]';
  };
}

仕様書

仕様書 状態 備考
ECMAScript 5.1 (ECMA-262)
Array.isArray の定義
標準 初回定義。JavaScript 1.8.5の実装。
ECMAScript 2015 (6th Edition, ECMA-262)
Array.isArray の定義
標準  
ECMAScript Latest Draft (ECMA-262)
Array.isArray の定義
ドラフト  

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 5Edge 完全対応 ありFirefox 完全対応 4IE 完全対応 9Opera 完全対応 10.5Safari 完全対応 5WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs 完全対応 あり

凡例

完全対応  
完全対応

関連情報

ドキュメントのタグと貢献者

このページの貢献者: mfuji09, silverskyvicto, FumioNonaka, teoli, ethertank
最終更新者: mfuji09,