前端检查对象是否为空的方法

1、使用 Object.keys() 方法(常用)

    这个方法会返回一个数组,包含对象自身的所有可枚举属性。通过判断这个数组的长度是否为0,就可以确定该对象是否为空。优点是简洁明了,但缺点是它不能检查到原型链上的属性

console.log(Object.keys(this.roomSettingData));
if (this.roomSettingData && Object.keys(this.roomSettingData).length > 0) {
	this.nameTitle = this.roomSettingData.sceneName
} else {
  this.nameTitle = ""
}

不为空输出

为空时输出

2、for...in...

这种方式可以检查对象自身的以及原型链上的所有属性。只要在遍历过程中没有发现任何属性,就可以认为该对象为空。优点是能够全面地检查对象,但缺点是代码相对复杂,而且可能会影响性能。

const obj = {
  name: '张三',
  age: 20,
};

let isEmpty = true;
for (let key in obj) {
  if (obj.hasOwnProperty(key)) {
    isEmpty = false;
    break;
  }
}

if (isEmpty) {
  console.log('对象为空');
} else {
  console.log('对象不为空');
}

3、JSON.stringify()

这种方法是将对象转化为 JSON 字符串,然后检查字符串是否为空。如果对象为空,转化后的 JSON 字符串应该是 "{}"。优点是简单易用,但缺点是无法处理含有函数、正则表达式等特殊类型的属性。

	console.log(JSON.stringify(this.roomSettingData));

不为空

为空时

const obj = {
  name: '张三',
  age: 20,
};

if (JSON.stringify(obj) === '{}') {
  console.log('对象为空');
} else {
  console.log('对象不为空');
}

4、getOwnPropertyNames()  

这个方法会获取到对象中的所有属性名,并存储到一个数组中。我们可以通过判断这个数组的长度来判断该对象是否为空。优点是可以获取到对象的所有自有属性,包括不可枚举的属性,但缺点是兼容性不如前几种方法好。

const obj = {
  name: '张三',
  age: 20,
};

const propertyNames = Object.getOwnPropertyNames(obj);
if (propertyNames.length === 0) {
  console.log('对象为空');
} else {
  console.log('对象不为空');
};

有什么不对欢迎指出批评,我会改正的,如果对你有所帮助,点点赞哦

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

起名时在学Aiifox

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值