Sobes.tech
Junior

Kaip galima patikrinti, ar šis laukas yra masyvas?

sobes.tech AI

Atsakymas iš AI

Yra keletas būdų patikrinti, ar duotas laukas yra masyvas:

  1. Array.isArray(): Labiausiai rekomenduojamas ir modernus būdas.

    // Patikrina, ar reikšmė yra masyvas.
    // Grąžina true arba false.
    Array.isArray([]); // true
    Array.isArray({}); // false
    Array.isArray(null); // false
    Array.isArray(undefined); // false
    Array.isArray(123); // false
    Array.isArray('eilutė'); // false
    
  2. instanceof Array: Veikia su masyvais, sukurtais dabartiniame frame.

    // Patikrina, ar objektas yra `Array` klasės pavyzdys.
    // Gali duoti neteisingus rezultatus dirbant su iframe.
    [] instanceof Array; // true
    new Array() instanceof Array; // true
    ({}); // false
    
  3. Object.prototype.toString.call(): Patikimas būdas, kuris apeina instanceof problemas skirtinguose frame.

    // Grąžina objekto tipo tekstinę reprezentaciją.
    // Masyvams grąžina "[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. constructor savybės patikrinimas: Mažiau patikimas, nes constructor savybė gali būti pakeista.

    // Patikrina, ar objekto konstruktorius yra Array.
    [].constructor === Array; // true
    ({}).constructor === Object; // false
    

Dauguma atvejų rekomenduojama naudoti Array.isArray() metodą.