El método Array.isArray() determina si el valor pasado es un Array.

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

Sintaxis

Array.isArray(obj)

Parámetros

obj
El objeto a evaluar.

Valor de retorno

true si el objeto es un Array; en caso contrario, false.

Descripción

Si el objeto es un Array, devuelve truefalse, en cualquier otro caso.

Vea el artículo “Determining with absolute accuracy whether or not a JavaScript object is an array” para más detalles.

Ejemplos

// las siguientes llamadas devuelven true
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
Array.isArray(new Array('a', 'b', 'c', 'd'));
Array.isArray(new Array(3));
// Hecho poco conocido: Array.prototype es también un array:
Array.isArray(Array.prototype); 

// todas las siguientes llamadas devuelven 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 });

instanceof vs isArray

Al comprobar una instancia ArrayArray.isArray es más recomendado que instanceof porque funciona a través de iframes.

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]

// Comprobando correctamente un Array
Array.isArray(arr);  // true
// Considerado peligroso, porque no funciona a través de iframes
arr instanceof Array; // false

Polyfill

Ejecutar el siguiente código antes de cualquier otro código creará un Array.isArray() si no está disponible de forma nativa.

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

Especificaciones

Especificación Estado Comentario
ECMAScript 5.1 (ECMA-262)
La definición de 'Array.isArray' en esta especificación.
Standard Definición inicial. Implementado en JavaScript 1.8.5.
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Array.isArray' en esta especificación.
Standard  
ECMAScript Latest Draft (ECMA-262)
La definición de 'Array.isArray' en esta especificación.
Draft  

Compatibilidad con navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Soporte básicoChrome Soporte completo 5Edge Soporte completo SiFirefox Soporte completo 4IE Soporte completo 9Opera Soporte completo 10.5Safari Soporte completo 5WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Soporte completo SiFirefox Android Soporte completo 4Opera Android Soporte completo SiSafari iOS Soporte completo SiSamsung Internet Android Soporte completo Sinodejs Soporte completo Si

Leyenda

Soporte completo  
Soporte completo

Vea también

Etiquetas y colaboradores del documento

Colaboradores en esta página: lajaso, Guatom, AlePerez92, sergiolunagarcia, EddieV1
Última actualización por: lajaso,