问题描述
有时,我们需要检查一个对象是否为空,比如:
var a = {};
那么,如何确定其为空对象呢?
解决方案
ES7+
// 因为 Object.entries(new Date()).length === 0;
// 所以,我们额外检查对象的构造函数
Object.entries(obj).length === 0 && obj.constructor === Object
ES5+
Object.keys(obj).length === 0 && obj.constructor === Object
ES5之前的解决办法
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop)) {
return false;
}
}
return JSON.stringify(obj) === JSON.stringify({});
}