Как определить, является ли переменная массивом - PullRequest
99 голосов
/ 29 июня 2009

Каков лучший де-факто стандартный кросс-браузерный метод для определения, является ли переменная в JavaScript массивом или нет?

При поиске в Интернете есть несколько разных предложений, некоторые из которых хороши, а многие недействительны.

Например, следующий подход является базовым:

function isArray(obj) {
    return (obj && obj.length);
}

Однако обратите внимание, что происходит, если массив пуст или объект obj фактически не является массивом, но реализует свойство длины и т. Д.

Какая реализация является лучшей с точки зрения фактической работы, кросс-браузерности и эффективности работы?

Ответы [ 12 ]

0 голосов
/ 29 июня 2009

Одна из наиболее исследованных и обсуждаемых версий этой функции находится на PHPJS сайте . Вы можете ссылаться на пакеты или перейти к функции напрямую . Я настоятельно рекомендую сайт для хорошо сконструированных эквивалентов функций PHP в JavaScript.

0 голосов
/ 29 июня 2009

Если вы хотите кросс-браузер, вы хотите jQuery.isArray .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...