JavaScript Way To Tell If An Object Is An Array
What's the 'right' way to tell if an object is an Array? function isArray(o) { ??? }
Solution 1:
The best way:
function isArray(obj) {
return Object.prototype.toString.call(obj) == '[object Array]';
}
The ECMAScript 5th Edition Specification defines a method for that, and some browsers, like Firefox 3.7alpha, Chrome 5 Beta, and latest WebKit Nightly builds already provide a native implementation, so you might want to implement it if not available:
if (typeof Array.isArray != 'function') {
Array.isArray = function (obj) {
return Object.prototype.toString.call(obj) == '[object Array]';
};
}
Solution 2:
You should be able to use the instanceof
operator:
var testArray = [];
if (testArray instanceof Array)
...
Solution 3:
jQuery solves lots of these sorts of issues:
jQuery.isArray(obj)
Solution 4:
This is what I use:
function is_array(obj) {
return (obj.constructor.toString().indexOf("Array") != -1)
}
Solution 5:
function typeOf(obj) {
if ( typeof(obj) == 'object' )
if (obj.length)
return 'array';
else
return 'object';
} else
return typeof(obj);
}
Post a Comment for "JavaScript Way To Tell If An Object Is An Array"