JS(JavaScript)判断对象为空
先说最优方案
使用Reflect.ownKeys
判断
// 忽视了 Symbol
const key = Symbol("a");
const obj2 = { [key]: 1 };
function isEmpty5(obj) {
return Reflect.ownKeys(obj).length === 0;
}
console.log("5、", isEmpty5(obj2));
这种判断方式,能够判断
Symbol
中空对象,是最优解
其它四种
这四种推荐,因为没发判断Symbol
// 普通判断方法
function isEmpty1(obj) {
return JSON.stringify(obj) === "{}";
}
function isEmpty2(obj) {
return Object.keys(obj).length === 0;
}
function isEmpty3(obj) {
return Object.getOwnPropertyNames(obj).length === 0;
}
function isEmpty4(obj) {
let flag = true;
for (const key in obj) {
if (key) {
flag = false;
break;
}
}
return flag;
}
const obj1 = { a: 1 };
console.log("1、", isEmpty1(obj1));
console.log("2、", isEmpty2(obj1));
console.log("3、", isEmpty3(obj1));
console.log("4、", isEmpty4(obj1));