JS(JavaScript)判断对象为空

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));

你可能感兴趣的:(开发问题,javascript,前端)