// Косвенный способ определения массива (обычно хватает :])
function isArray(ar{
    return  (typeof ar == 'object'&& ar && ('length' in ar);
}

2 комментария:

  1. Слишком уж косвенно получается:

    var object = {};
    object.constructor.prototype.length = 0;
    isArray(object); // true


    Если уж извращаться по полной то так:
    var is_array = function(value) {
    var __object__ = Object.prototype;
    return value && typeof(value) === 'object' && value instanceof Array && !__object__.propertyIsEnumerable.call(value, 'length') && __object__.hasOwnProperty.call(value, 'length');
    };

    :)

    ОтветитьУдалить
  2. Для многих задач подходит такой способ, особенно там где критична каждая лишняя проверка проверка.

    ОтветитьУдалить