Sobes.tech
Junior

¿Cómo verificar si un objeto es un array?

sobes.tech AI

Respuesta de la IA

Existen varias formas:

  1. Usar Array.isArray(). Es la forma más confiable y recomendada.

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(Array.isArray(arr)); // true
    console.log(Array.isArray(obj)); // false
    
  2. Usar instanceof Array. Funciona para arrays creados en el marco o ventana actual. Puede dar resultados falsos al trabajar con marcos o escenarios de dominio cruzado.

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(arr instanceof Array); // true
    console.log(obj instanceof Array); // false
    
  3. Usar Object.prototype.toString.call(). Devuelve una representación en cadena del tipo del objeto. Para arrays, es "[object Array]".

    const arr = [1, 2, 3];
    const obj = { a: 1 };
    
    console.log(Object.prototype.toString.call(arr) === '[object Array]'); // true
    console.log(Object.prototype.toString.call(obj) === '[object Array]'); // false
    

El método más recomendable es usar Array.isArray(), ya que es confiable y no tiene efectos secundarios relacionados con el contexto de ejecución.