我必须循环检查对象以设置缺少的参数。
最初,我检查了当 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/