Sobes.tech
Junior

Ako určiť, či premenná obsahuje pole?

sobes.tech AI

Odpoveď od AI

Najspoľahlivejší spôsob je použiť Array.isArray():

// Kontroluje, či je hodnota poľom
Array.isArray(mojaPremenna);

Táto metóda vráti true, ak je premenná poľom, a false v opačnom prípade, bez ohľadu na kontext vykonávania alebo iné faktory.

Iné, menej spoľahlivé spôsoby zahŕňajú:

  1. typeof:

    // Pre polia `typeof` vráti `'object'`
    typeof mojaPremenna === 'object';
    

    Je menej spoľahlivá, pretože typeof vracia 'object' pre mnoho typov dát, nie len pre polia (objekty, null).

  2. instanceof:

    // Kontroluje, či je objekt inštanciou triedy Array
    mojaPremenna instanceof Array;
    

    Môže byť nespolehlivé pri práci s iframe alebo oknami s rôznymi kontextami JavaScriptu, kde Array z jedného kontextu sa líši od iného.

  3. Kontrola konštruktora:

    // Kontroluje, či je konštruktorom premennej Array
    mojaPremenna.constructor === Array;
    

    Môže tiež spôsobovať problémy v rôznych kontextoch vykonávania.

Zhrnutie tabuľky:

Metóda Spoľahlivosť Popis
Array.isArray() Vysoká Špeciálne určené na kontrolu polí.
typeof mojaPremenna Nízka Pre polia vracia 'object'.
mojaPremenna instanceof Array Stredná/Nízka (závisí od kontextu) Kontroluje, či patrí do triedy Array.
mojaPremenna.constructor === Array Stredná/Nízka (závisí od kontextu) Kontroluje vlastnosť constructor.

Preto je Array.isArray() preferovanou a najspoľahlivejšou metódou.