检查对象是否有长度

check if an object has length?

本文关键字:是否 对象 检查      更新时间:2023-09-26

我必须循环检查一个对象以设置缺少的参数。

最初,我有一个检查,当Object.keys().length为空时,为该对象变量创建了一个缺失数组。

支票是

   if (!Object.keys(obj).length) {
          missing.push(obj);
    }

和工作得很好,因为obj总是有键,后来有一些情况,obj被设置为{},显然没有键,如何检查?

Object.keys(obj).length不能在所有浏览器中工作,因为JScript DontEnum Bug

尝试使用这个纯javascript函数(更新)

function isEmpty(obj) {     
        if (obj == null) 
            return true;
        if (obj === undefined)
            return true;
        if (obj.length === 0)  
            return true;
        if (obj.length > 0)    
            return false;
        for (var key in obj) {
            if(obj.hasOwnProperty(prop))
            return false;
        }
        return true;
    }

另一个解决方案可以是

Object.getOwnPropertyNames(obj).length == 0

getOwnPropertyNames返回所有属性的数组(可枚举或

查看getOwnPropertyNames文档

如果你会使用jquery有这个函数可以帮助你

jQuery.isEmptyObject(obj);

参考这里的文档