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

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Soporte básico5 Si4910.55
FeatureAndroid webviewChrome para AndroidEdge mobileFirefox para AndroidOpera AndroidiOS SafariSamsung Internet
Soporte básico Si Si Si4 Si Si Si

Vea también

Etiquetas y colaboradores del documento

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