Sobes.tech
Junior

Jak lze ověřit, že toto pole je pole?

sobes.tech AI

Odpověď od AI

Existuje několik způsobů, jak ověřit, zda dané pole je pole:

  1. Array.isArray(): Nejpreferovanější a moderní způsob.

    // Kontroluje, zda je hodnota pole.
    // Vrací true nebo false.
    Array.isArray([]); // true
    Array.isArray({}); // false
    Array.isArray(null); // false
    Array.isArray(undefined); // false
    Array.isArray(123); // false
    Array.isArray('řetězec'); // false
    
  2. instanceof Array: Funguje pro pole vytvořená v aktuálním rámci.

    // Kontroluje, zda je objekt instancí třídy Array.
    // Může dávat nesprávné výsledky při práci s iframe.
    [] instanceof Array; // true
    new Array() instanceof Array; // true
    ({}); // false
    
  3. Object.prototype.toString.call(): Spolehlivý způsob, který obejde problémy s instanceof v různých rámcích.

    // Vrací řetězcové zobrazení typu objektu.
    // Pro pole vrací "[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: Méně spolehlivá, protože vlastnost constructor může být změněna.

    // Kontroluje, zda je konstruktor objektu Array.
    [].constructor === Array; // true
    ({}).constructor === Object; // false
    

Nejvíce doporučeným a spolehlivým způsobem je použití Array.isArray().