Jak zkontrolovat, zda je objekt pole v JavaScriptu

Možná jste použili typeof operátor v JavaScriptu pro kontrolu typu objektu. Ale bohužel to nefunguje pro pole. Skutečným problémem je způsob, jakým jsou pole zpracovávána v JavaScriptu.

Pole JavaScriptu je interně považováno za speciální druh objektu. Syntaxe hranatých závorek používaná pro přístup k prvku pole array[index] se velmi podobá tomu, co používáme pro objekt object[key] . Jediný hmatatelný rozdíl je v tom, že jako klíče se používají indexová čísla.

Nejjednodušší způsob, jak zkontrolovat, zda je proměnná pole v JavaScriptu, je pomocí Array.isArray() metoda:

Array.isArray(['🍵', '🍔', '🍕']); // true
Array.isArray([]); // true
Array.isArray({ name: 'John Deo', age: 21 }); // false

Array.isArary() metoda funguje ve všech moderních prohlížečích a IE9 a novějších. Pro podporu starších prohlížečů stačí použít následující polyfill:

if (!Array.isArray) {
    Array.isArray = function (arg) {
        return Object.prototype.toString.call(arg) === '[object Array]';
    };
}

Podívejte se na tento článek, kde se dozvíte více o JavaScriptových polích a jejich použití k uložení více hodnot do jedné proměnné.