javascript - 检查一个对象是否有长度?

标签 javascript

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

最初,我检查了当 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 returns an array of all properties (enumerable or not) found directly upon a given object.

引用here对于 getOwnPropertyNames 文档

如果你会使用 jquery,这个函数应该可以帮助你

jQuery.isEmptyObject(obj);

引用here用于文档

关于javascript - 检查一个对象是否有长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24625870/

相关文章:

javascript - Sequelize 没有使用日期创建正确的查询

javascript - 使用 ajax 刷新页面而不重新加载,并在该页面中使用 POST/GET

javascript - JS 空焦点输入

javascript - 如何将EJS模板的表格列的字符串转换为dd-mm-yyyy格式?

javascript - 使用 casperjs 遇到 TypeError

javascript - 覆盖更改字体系列 react native android

javascript - Google Chrome 扩展程序持久性

javascript - 我怎样才能让我的包含功能发挥作用?

javascript - 如何将div背景设置为 Canvas

asp.net - 为什么调用 Page WebMethod 的 Javascript 会导致 "500: Unknown web method"?