You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断对象的所有属性是否均为null?含空对象场景适配

解决对象全为空属性或空对象的判断问题

嘿,我来帮你完善这个判断逻辑!你现在已经用isEmpty处理了空对象的情况,接下来只需要加上对“所有属性都是null”的检查就行,结合lodash的方法可以很优雅地实现:

import { isEmpty, every } from 'lodash';

// 整合后的判断逻辑
return !isEmpty(this.report.device) && every(this.report.device, value => value !== null);

拆解一下这个逻辑:

  • !isEmpty(this.report.device):先把空对象的情况排除掉——如果是空对象,这部分直接是false,整个表达式结果就是false,符合你返回false的需求。
  • every(this.report.device, val => val !== null):用every遍历对象的所有属性值,只要有任何一个属性值不是null,这部分就返回true;如果所有属性全是null,这部分返回false。
  • 两者用&&连接,只有当对象不是空的,同时不是所有属性都是null的时候,才返回true,完全覆盖了你要的两种场景。

如果你想用原生JS实现(不用额外的lodash方法):

也可以用Object.values配合原生的every来写,逻辑是一样的:

const device = this.report.device;
// 如果是空对象 或者 所有属性都是null,就返回false,否则返回true
return !(isEmpty(device) || Object.values(device).every(val => val === null));

这样不管是{}还是{ property1: null, property2: null },都会返回false,其他情况返回true,完美满足你的需求~

内容的提问来源于stack exchange,提问作者Kay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:38:28