Jak sprawdzić, czy zmienna jest tablicą?

varjs #7

Sprawdzenie, czy zmienna jest tablicą było w JavaScript nie do końca prostym zadaniem. Niestety, typeof nie daje nam jednoznacznej odpowiedzi, ponieważ zwraca to samo dla tablic i obiektów:

var arr = [1, 2, 3];
var obj = {};
typeof arr; // "object"
typeof obj; // "object"

W ECMAScript 3 sprawdzaliśmy, czy zmienna jest tablicą następująco:

var arr = [1, 2, 3];
if (Object.prototype.toString.call(arr) === "[object Array]") {}

Na szczęście najnowsza wersja ECMAScript 5 wprowadza funkcję Array.isArray:

var arr = [1, 2, 3];
if (Array.isArray(arr)) {}