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é.