我在Parse.com CloudCode上运行此代码
queryContact.find().then(function(results) {
console.log(typeof results); // object
if (results.constructor !== Array) {
response.success("Found zero results");
} else {
console.log("WHY DID IT GO THROUGH!!!");
}
}).then...
find()
函数通常返回一个数组,但在我的测试用例中它返回0结果。通过登录到控制台,我设法看到结果是typeof
object
。仅当else
为results
typeof
时,我才会继续Array
个案。但是,我的检查无法捕获此信息,代码不断进入else
部分。 this SO question的所有支票都不适合我。
答案 0 :(得分:2)
我最终使用
if (results.length === 0) {
不知怎的,这对我有用。
答案 1 :(得分:1)
检查对象是否为数组
Object.prototype.toString.call(results) === '[object Array]'
答案 2 :(得分:0)
试试这个。
if( Object.prototype.toString.call( someVar ) === '[object Array]' ) {
alert( 'Array!' );
}else{
alert( 'object!' );
}
答案 3 :(得分:0)
您可以使用以下命令返回JavaScript类型的名称:
function toType(x) {
return ({}).toString.call(x).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
}
toType([]); // array
toType({}); // object