Sobes.tech
Junior

¿Cómo se puede verificar que este campo es un array?

sobes.tech AI

Respuesta de la IA

Existen varias formas de verificar si un campo dado es un array:

  1. Array.isArray(): La forma más preferida y moderna.

    // Verifica si el valor es un array.
    // Devuelve true o false.
    Array.isArray([]); // true
    Array.isArray({}); // false
    Array.isArray(null); // false
    Array.isArray(undefined); // false
    Array.isArray(123); // false
    Array.isArray('cadena'); // false
    
  2. instanceof Array: Funciona para arrays creados en el marco actual.

    // Verifica si el objeto es una instancia de la clase Array.
    // Puede dar resultados incorrectos al trabajar con iframes.
    [] instanceof Array; // true
    new Array() instanceof Array; // true
    ({}); // false
    
  3. Object.prototype.toString.call(): Método confiable que evita problemas con instanceof en diferentes marcos.

    // Devuelve una representación en cadena del tipo del objeto.
    // Para arrays devuelve "[object Array]".
    Object.prototype.toString.call([]); // "[object Array]"
    Object.prototype.toString.call({}); // "[object Object]"
    Object.prototype.toString.call(null); // "[object Null]"
    Object.prototype.toString.call(undefined); // "[object Undefined]"
    
  4. Verificación de la propiedad constructor: Menos confiable, ya que la propiedad constructor puede ser modificada.

    // Verifica si el constructor del objeto es Array.
    [].constructor === Array; // true
    ({}).constructor === Object; // false
    

El método más recomendable y confiable en la mayoría de los casos es usar Array.isArray().