niubility-coding-js
niubility-coding-js copied to clipboard
🎁第7期第3题:如何判断一个对象是否为空对象?
空对象?咳咳,就是这个:
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