How can I check if an object is an array? [duplicate] – Dev

The best answers to the question “How can I check if an object is an array? [duplicate]” in the category Dev.


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 so I can loop over it without fear of an error.

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


In modern browsers you can do:


(Supported by Chrome 5, Firefox 4.0, Internet Explorer 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 Array]';

If you use jQuery you can use jQuery.isArray(obj) or $.isArray(obj). If you use Underscore.js 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


The method given in the ECMAScript standard to find the class of Object is to use the toString method from Object.prototype.

if( === '[object Array]') {

Or you could use typeof to test if it is a string:

if(typeof someVar === 'string') {
    someVar = [someVar];

Or if you’re not concerned about performance, you could just do a concat to a new empty Array.

someVar = [].concat(someVar);

There’s also the constructor which you can query directly:

if ( == "Array") {
    // do something

Check out a thorough treatment from T.J. Crowder’s blog, as posted in his comment below.

Check out this benchmark to get an idea which method performs better:

From @Bharath, convert a string to an array using ES6 for the question asked:

const convertStringToArray = (object) => {
   return (typeof object === 'string') ? Array(object) : object


let m = 'bla'
let n = ['bla','Meow']
let y = convertStringToArray(m)
let z = convertStringToArray(n)
console.log('check y: '+JSON.stringify(y)) . // check y: ['bla']
console.log('check y: '+JSON.stringify(z)) . // check y: ['bla','Meow']


jQuery also offers an $.isArray() method:

var a = ["A", "AA", "AAA"];

if($.isArray(a)) {
  alert("a is an array!");
} else {
  alert("a is not an array!");
<script src=""></script>


I would first check if your implementation supports isArray:

if (Array.isArray)
    return Array.isArray(v);

You could also try using the instanceof operator

v instanceof Array