Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как отличить массив от объекта (https://javascript.ru/forum/misc/8922-kak-otlichit-massiv-ot-obekta.html)

Ilyan 20.04.2010 22:51

Как отличить массив от объекта
 
Есть переменная, в ней может быть либо массив, либо элемент DOM. Как узнать, что в ней? typeof в обоих случаях возвращает object.

Nekromancer 20.04.2010 22:59

if(jamesBond instanceof window.Array){
//...
}


http://javascript.ru/instanceof

Octane 20.04.2010 23:07

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

var array = [1, 2, 3];
var node = document.createElement("div");

alert(isArray(array));
alert(isArray(node));


А вообще лучше по свойствам отличать:
if (arg.nodeType) {

    arg // — DOM-элемент

} else if ("length" in arg) {

    arg // — NodeList или Array

}

Ilyan 20.04.2010 23:08

Nekromancer, Octane, спасибо.


Часовой пояс GMT +3, время: 21:29.