The method given in the ECMAScript standard to find the class of Object is to use the toString
method from Object.prototype
.
if(Object.prototype.toString.call(someVar) === '[object Array]') { alert('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 (somevar.constructor.name == "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: http://jsben.ch/#/QgYAV
From @Bharath, convert a string to an array using ES6 for the question asked:
const convertStringToArray = (object) => { return (typeof object === 'string') ? Array(object) : object }
Suppose:
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']