检查对象是否有长度?

时间:2014-07-08 07:19:11

标签: javascript

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

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

检查是

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

并且工作得很好,因为obj总是有密钥,后来有些情况下obj设置为{},显然没有密钥,如何检查?

1 个答案:

答案 0 :(得分:1)

由于JScript DontEnum Bug

Object.keys(obj).length无法在所有浏览器中使用

尝试使用此纯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返回所有属性的数组(enumerable或   没有)直接找到一个给定的对象。

请参阅here了解getOwnPropertyNames文档

如果你可以使用jquery,这个功能可以帮助你

jQuery.isEmptyObject(obj);

请参阅here了解文档