ECMAScript standardında verilen Object sınıfını bulmak için kullanılan toString
metodu kullanmaktır Object.prototype
.
if( Object.prototype.toString.call( someVar ) === '[object Array]' ) {
alert( 'Array!' );
}
Veya typeof
bunun bir String olup olmadığını test etmek için kullanabilirsiniz :
if( typeof someVar === 'string' ) {
someVar = [ someVar ];
}
Veya performansla ilgili endişeleriniz yoksa concat
, yeni bir boş Dizi için bir işlem yapabilirsiniz .
someVar = [].concat( someVar );
Doğrudan sorgulayabileceğiniz kurucu da var:
if (somevar.constructor.name == "Array") {
// do something
}
Bir göz atın kapsamlı tedavi dan @TJ Crowder'ın aşağıda onun yorumunda yayınlanmıştır olarak, blog.
Hangi yöntemin daha iyi performans gösterdiğine dair bir fikir edinmek için bu karşılaştırmaya göz atın : http://jsben.ch/#/QgYAV
Gönderen @Bharath soru sorulduğunda için ES6 kullanarak diziye dönüştürme dizesi:
const convertStringToArray = (object) => {
return (typeof object === 'string') ? Array(object) : object
}
varsayalım:
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']