🎁第7期第3题:如何判断一个对象是否为空对象?
Opened this issue · 0 comments
LinDaiDai commented
空对象?咳咳,就是这个:
let obj = {}
for...in...
function isEmptyObj (obj) {
for (i in obj) {
return false
}
return true;
}
console.log(isEmptyObj(obj)); // true
不过这种方法貌似有一个弊端,因为for...in...
是会把对象原型链上的属性也列举出来,例如下面这样就会判断错误:
function isEmptyObj (obj) {
for (i in obj) {
return false
}
return true;
}
let obj = {};
obj.__proto__.num = 'dsfdf'
console.log(isEmptyObj(obj)); // false
JSON.stringify()
😂,这个是呆呆很久之前用的一种方法:
function isEmptyObj (obj) {
return JSON.stringify(obj) === '{}';
}
console.log(isEmptyObj(obj)); // true
Object.keys()
:
function isEmptyObj (obj) {
return Object.keys(obj).length === 0;
}
console.log(isEmptyObj(obj)); // true