我必须循环检查对象以设置缺少的参数。
最初,我检查了当Object.keys().length
为空时,为该对象变量创建了一个缺失的数组。
if (!Object.keys(obj).length) {
missing.push(obj);
}
并且工作得很好,因为obj总是有密钥,后来有些情况下obj设置为{}
,显然没有密钥,如何检查?
答案 0 :(得分:1)
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了解文档