Sobes.tech
Junior

Ako môžete skontrolovať, či je toto pole pole?

sobes.tech AI

Odpoveď od AI

Existuje niekoľko spôsobov, ako skontrolovať, či je dané pole poľom:

  1. Array.isArray(): Najpreferovanejší a moderný spôsob.

    // Kontroluje, či je hodnota poľom.
    // Vráti true alebo false.
    Array.isArray([]); // true
    Array.isArray({}); // false
    Array.isArray(null); // false
    Array.isArray(undefined); // false
    Array.isArray(123); // false
    Array.isArray('reťazec'); // false
    
  2. instanceof Array: Funguje pre polia vytvorené v aktuálnom rámci.

    // Kontroluje, či je objekt inštanciou triedy Array.
    // Môže dávať nesprávne výsledky pri práci s iframe.
    [] instanceof Array; // true
    new Array() instanceof Array; // true
    ({}); // false
    
  3. Object.prototype.toString.call(): Spoľahlivý spôsob, ktorý obchádza problémy s instanceof v rôznych rámcoch.

    // Vráti reťazcovú reprezentáciu typu objektu.
    // Pre polia vráti "[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. Kontrola vlastnosti constructor: Menej spoľahlivá, pretože vlastnosť constructor môže byť zmenená.

    // Kontroluje, či je konštruktor objektu Array.
    [].constructor === Array; // true
    ({}).constructor === Object; // false
    

Najviac odporúčaný a spoľahlivý spôsob v väčšine prípadov je použitie Array.isArray().