Junior
Jak určit, že proměnná obsahuje pole?
sobes.tech AI
Odpověď od AI
Nejspolehlivější způsob je použití Array.isArray():
// Kontroluje, zda je hodnota pole
Array.isArray(máProměnná);
Tato metoda vrací true, pokud je proměnná pole, a false v opačném případě, bez ohledu na kontext spuštění nebo jiné faktory.
Další, méně spolehlivé způsoby zahrnují:
-
typeof:// U polí `typeof` vrátí `'object'` typeof máProměnná === 'object';Je méně spolehlivá, protože
typeofvrací'object'pro mnoho typů dat, nejen pro pole (objekty, null). -
instanceof:// Kontroluje, zda je objekt instancí třídy Array máProměnná instanceof Array;Může být nespolehlivé při práci s iframe nebo okny s různými kontexty JavaScriptu, kde
Arrayz jednoho kontextu se liší odArrayz jiného. -
Kontrola konstruktoru:
// Kontroluje, zda konstruktor proměnné je Array máProměnná.constructor === Array;Také může způsobit problémy v různých kontextech spuštění.
Souhrnná tabulka:
| Metoda | Spolehlivost | Popis |
|---|---|---|
Array.isArray() |
Vysoká | Specializovaná na kontrolu polí. |
typeof máProměnná |
Nízká | U polí vrací 'object'. |
máProměnná instanceof Array |
Střední/Nízká (závisí na kontextu) | Kontroluje, zda patří do třídy Array. |
máProměnná.constructor === Array |
Střední/Nízká (závisí na kontextu) | Kontroluje vlastnost constructor. |
Proto je Array.isArray() preferovanou a nejspolehlivější metodou.