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 devuelto

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());
// Hecho poco conocido: Array.prototype es también un array:
Array.isArray(Array.prototype); 

// 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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Caracteristica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Soporte básico 5 4.0 (2.0) 9 10.5 5
Caracterísitica Android Chrome para Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Soporte básico (Yes) (Yes) 4.0 (2.0) (Yes) (Yes) (Yes)

 

Vea también

Etiquetas y colaboradores del documento

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