ECMAScript标准中提供的用于找到Object类的toString
方法是使用中的方法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克罗德的博客,张贴在下面他的评论。
查看此基准,以了解哪种方法效果更好: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']