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ú:
-
typeof:// Pre polia `typeof` vráti `'object'` typeof mojaPremenna === 'object';Je menej spoľahlivá, pretože
typeofvracia'object'pre mnoho typov dát, nie len pre polia (objekty, null). -
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
Arrayz jedného kontextu sa líši od iného. -
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.