Objectのクラスを見つけるためにECMAScript標準で指定されているtoString
メソッドは、fromメソッドを使用することですObject.prototype
。
if( Object.prototype.toString.call( someVar ) === '[object Array]' ) {
alert( 'Array!' );
}
またはtypeof
、それが文字列かどうかをテストするために使用できます。
if( typeof someVar === 'string' ) {
someVar = [ someVar ];
}
または、パフォーマンスを気にしない場合はconcat
、新しい空の配列に対してaを実行できます。
someVar = [].concat( someVar );
直接クエリできるコンストラクタもあります。
if (somevar.constructor.name == "Array") {
// do something
}
以下のコメントに投稿されているように、@ TJ Crowderのブログから完全な扱いを確認してください。
このベンチマークをチェックして、どちらの方法がより優れたパフォーマンスを発揮するかを確認してください:http : //jsben.ch/#/QgYAV
@Bharathから、質問にEs6を使用して文字列を配列に変換します。
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']