检查对象是否为 Parse.com 云代码中的数组

Checking if object is Array in Parse.com CloudCode

本文关键字:代码 数组 com 对象 是否 Parse 检查      更新时间:2023-09-26

我在 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。只有在typeof Array的情况下,我才想继续处理results else案。但是,我的检查无法捕获这一点,并且代码不断进入else部分。这个SO问题的所有检查都不适合我。

我最终使用了

if (results.length === 0) {

不知何故,这对我有用。

检查对象是否为数组

 Object.prototype.toString.call(results) === '[object Array]'

试试这个。

 if( Object.prototype.toString.call( someVar ) === '[object Array]' ) {
   alert( 'Array!' );
 }else{
   alert( 'object!' );
 }

您可以使用以下内容返回 JavaScript 类型的名称:

function toType(x) {
  return ({}).toString.call(x).match(/'s([a-zA-Z]+)/)[1].toLowerCase();
}
toType([]); // array
toType({}); // object

演示