Wednesday, August 1, 2018

javascript - How to check if an object is an array?



I'm trying to write a function that either accepts a list of strings, or a single string. If it's a string, then I want to convert it to an array with just the one item. Then I can loop over it without fear of an error.



So how do I check if the variable is an array?






I've rounded up the various solutions below and created a jsperf test. They're all fast, so just use Array.isArray -- it's well-supported now and works across frames.


Answer




In modern browsers you can do



Array.isArray(obj)


(Supported by Chrome 5, Firefox 4.0, IE 9, Opera 10.5 and Safari 5)



For backward compatibility you can add the following



# only implement if no native implementation is available

if (typeof Array.isArray === 'undefined') {
Array.isArray = function(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
}
};


If you use jQuery you can use jQuery.isArray(obj) or $.isArray(obj). If you use underscore you can use _.isArray(obj)



If you don't need to detect arrays created in different frames you can also just use instanceof




obj instanceof Array

No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...