检查对象是否有长度
check if an object has length?
我必须循环检查一个对象以设置缺少的参数。
最初,我有一个检查,当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);
参考这里的文档
相关文章:
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 验证会话中是否存在对象's数组
- JS数组-检查对象值是否重复
- 如何检查数组中的对象是否等于选项值
- IndexedDB对象键:大小是否重要
- 测试对象是否相等和/或对象是否有更多的关键点,但仍然与共同的关键点相等
- 确定javascript中的html表对象是否具有<colgroup>是否
- 验证对象是否为null Javascript/Angularjs
- 使用js/jQuery检查对象(而不是元素)是否真的存在
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 如何通过json对象选项卡中的Id来检查对象是否存在
- 是否可以在javascript中反序列化java对象
- 尝试简化检查对象键是否为true并将其推送到另一个对象
- jQuery-检测选择对象是否添加或删除了选项
- 将对象从另一个不可变的Map分配给Map是否意味着深度克隆
- 查找对象数组是否包含其中一个标记的最快方法
- 检查对象是否是mongo游标
- 检查对象的所有属性是否未定义
- JavaScript对象作为哈希?复杂性是否大于O(1)