在Parse.com CloudCode中检查对象是否为Array

时间:2014-12-08 12:30:55

标签: javascript arrays parse-platform cloud-code

我在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。仅当elseresults typeof时,我才会继续Array个案。但是,我的检查无法捕获此信息,代码不断进入else部分。 this SO question的所有支票都不适合我。

4 个答案:

答案 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

DEMO