在js中判断对象是空对象的几种方法
- 使用 Object.keys() 方法
Object.keys() 方法返回对象自身的可枚举属性名称组成的数组。如果数组的长度为 0,那么对象是空的。
function isEmptyObject(obj) {return Object.keys(obj).length === 0 && obj.constructor === Object;
}const obj1 = {};
const obj2 = { a: 1 };console.log(isEmptyObject(obj1)); // true
console.log(isEmptyObject(obj2)); // false
- 使用 for…in 循环
for…in 循环用于遍历对象的可枚举属性。如果循环没有执行,说明对象是空的。
function isEmptyObject(obj) {for (let key in obj) {if (obj.hasOwnProperty(key)) {return false;}}return obj.constructor === Object;
}const obj1 = {};
const obj2 = { a: 1 };console.log(isEmptyObject(obj1)); // true
console.log(isEmptyObject(obj2)); // false
- 使用 JSON.stringify() 方法
可以将对象转换为 JSON 字符串,然后判断字符串是否等于 ‘{}’。
function isEmptyObject(obj) {return JSON.stringify(obj) === '{}' && obj.constructor === Object;
}const obj1 = {};
const obj2 = { a: 1 };console.log(isEmptyObject(obj1)); // true
console.log(isEmptyObject(obj2)); // false
- 使用 Object.entries() 方法
Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组。如果数组长度为0,则对象是空的。
function isEmptyObject(obj) {return Object.entries(obj).length === 0 && obj.constructor === Object;
}const obj1 = {};
const obj2 = { a: 1 };console.log(isEmptyObject(obj1)); // true
console.log(isEmptyObject(obj2)); // false
- 验证对象的构造函数
在判断对象是否为空时,可以附加检查对象的构造函数是否为 Object。这可以避免在对象可能是由其他构造函数创建的情况下出现错误判断。
function isEmptyObject(obj) {return obj && obj.constructor === Object && Object.keys(obj).length === 0;
}const obj1 = {};
const obj2 = new Date();console.log(isEmptyObject(obj1)); // true
console.log(isEmptyObject(obj2)); // false (Date is not a plain object)
总结
这些方法可以有效地判断一个对象是否为空对象。你可以根据具体需求选择合适的判断方法。最常用的是 Object.keys(obj).length === 0,因为它简洁且性能较好。
相关文章:
在js中判断对象是空对象的几种方法
使用 Object.keys() 方法 Object.keys() 方法返回对象自身的可枚举属性名称组成的数组。如果数组的长度为 0,那么对象是空的。 function isEmptyObject(obj) {return Object.keys(obj).length 0 && obj.constructor Object; }const obj1 {}; const obj2…...
【整理】后端接口设计和优化相关思路汇总
文章目录 明确的接口定义和文档化使用RESTful设计规范分页和过滤合理使用缓存限流与熔断机制安全性设计异步处理与后台任务接口参数校验(入参和出参)接口扩展性考虑核心接口,线程池隔离关键接口,日志打印接口功能单一性原则接口查…...
docker 部署 sql server
众所周知,sql server不好装,本人之前装了两次,这个数据库简直是恶心。 突然想到,用docker容器吧 果然可以 记得放开1433端口 还有 记得docker加速,不然拉不到镜像的最后工具还是要装的,这个就自己研究吧。 …...
微信云开发云存储 下载全部文件
一、安装 首先按照这个按照好依赖,打开cmd 安装 | 云开发 CloudBase - 一站式后端云服务 npm i -g cloudbase/cli 安装可能遇到的问题 ‘tcb‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。-CSDN博客 二、登录 在cmd输入 tcb login 三、…...
1、巡线功能实现(7路数字循迹)
一、小车运行 1.PWM初始化函数 (pwm.c中编写) 包括四个轮子PWM通道使用的GPIO接口初始化、定时器初始化、PWM通道初始化。 void PWM_Init(uint16_t arr,uint16_t psc); 2.PWM占空比设置函数 (pwm.c中编写) 此函数调用了四个通道设置占空比的函数,作用是方便修改四…...
来了...腾讯内推的软件测试面试PDF 文档(共107页)
不多说,直接上干货(展示部分以腾讯面试纲要为例)完整版文末领取 通过大数据总结发现,其实软件测试岗的面试都是差不多的。常问的有下面这几块知识点: 全网首发-涵盖16个技术栈 第一部分,测试理论&#x…...
Android大脑--systemserver进程
用心坚持输出易读、有趣、有深度、高质量、体系化的技术文章,技术文章也可以有温度。 本文摘要 系统native进程的文章就先告一段落了,从这篇文章开始写Java层的文章,本文同样延续自述的方式来介绍systemserver进程,通过本文您将…...
python项目部署:Nginx和UWSGI认识
Nginx: HTTP服务器,反向代理,静态资源转发,负载均衡,SSL终端,缓存,高并发处理。 UWSGI: Python应用程序服务器,WSGI兼容,多进程管理,快速应用部署,多种协议支…...
【区块链+金融服务】农业大宗供应链线上融资平台 | FISCO BCOS应用案例
释放数据要素价值,FISCO BCOS 2024 应用案例征集 粮食贸易受季节性影响显著。每年的粮收季节,粮食收储企业会根据下游订单需求,从上游粮食贸易商或粮农手 里大量采购粮食,并分批销售给下游粮食加工企业(面粉厂、饲料厂…...
2025ICASSP Author Guidelines
Part I: General Information Procedure ICASSP 2025 论文提交与评审过程将与往届会议类似: 有意参加会议的作者需提交一份完整描述其创意和相关研究成果的文件,技术内容(包括图表和可能的参考文献)最多为4页&…...
Openstack 所需要的共享服务组件及核心组件
openstack 共享服务组件: 数据库服务(Database service):MariaDB及MongoDB 消息传输服务(messages queues):RabbitMQ 缓存(cache):Memcache 时间同步(time sync)&…...
解密Linux中的通用块层:加速存储系统,提升系统性能
通用块层 通用块层是Linux中的一个重要组件,用于管理不同块设备的统一接口,减少不同块设备的差异带来的影响。它位于文件系统和磁盘驱动之间,类似于Java中的适配器模式,让我们无需关注底层实现,只需提供固定接口即可。…...
浅析国有商业银行人力资源数字化平台建设
近年来,在复杂的国际经济金融环境下,中国金融市场整体运行保持稳定。然而,随着国内金融机构改革的不断深化,国有商业银行全面完成股改上市,金融市场规模逐步扩大,体系日益完善,同时行业的竞争也…...
微信h5跳转消息页关注公众号,关注按钮闪一下消失
一、需求背景 在微信里访问h5页面,在页面里跳转到微信公众号消息页关注公众号。如下图: 二、实现跳转消息页关注公众号 跳转链接是通过 https://mp.weixin.qq.com/mp/profile_ext?actionhome&__bizxxxxx&scene110#wechat_redirect 来实现。…...
掌握PyTorch的加权随机采样:WeightedRandomSampler全解析
标题:掌握PyTorch的加权随机采样:WeightedRandomSampler全解析 在机器学习领域,数据不平衡是常见问题,特别是在分类任务中。PyTorch提供了一个强大的工具torch.utils.data.WeightedRandomSampler,专门用于处理这种情况…...
网络丢包深度解析:影响、原因及优化策略
摘要 网络丢包是数据在传输过程中未能成功到达目的地的现象,它对网络通信的性能有着显著的影响。本文将深入探讨网络丢包的定义、原因、对性能的影响,以及如何通过技术手段进行检测和优化。 1. 网络丢包的定义 网络丢包发生在数据包在源和目的地之间的…...
Hadoop入门基础(一):深入探索Hadoop内部处理流程与核心三剑客
在大数据的世界里,处理海量数据的需求越来越多,而Hadoop作为开源的分布式计算框架,成为了这一领域的核心技术之一。 一、Hadoop简介 Hadoop是Apache Software Foundation开发的一个开源分布式计算框架,旨在使用简单的编程模型来…...
【扒代码】dave.py
COTR 模型是一个用于少样本或零样本对象检测和计数的神经网络。它结合了特征提取、Transformer 编码器和解码器、密度图预测和边界框预测等多个组件。该模型特别适用于在只有少量标注数据或完全没有标注数据的情况下进行对象检测和计数任务。通过使用 Transformer 架构…...
一个人真正的成熟,体现在这六个字上
你好,我是腾阳。 在这个快节奏、高压力的社会中,我们每个人都在追求成长与进步,渴望成为一个更优秀的自己。 然而,成长的道路从不是一帆风顺,我们时常会面临自我怀疑、挫折感、外界的质疑和内心的挣扎。 但正是这些…...
【已成功EI检索】第五届新材料与清洁能源国际学术会议(ICAMCE 2024)
重要信息 会议官网:2024.icceam.com 接受/拒稿通知:投稿后1周内 收录检索:EI, Scopus 会议召开视频 见刊封面 EI检索页面 Scopus 检索页面 相关会议 第六届新材料与清洁能源国际学术会议(ICAMCE 2025) 大会官网&…...
揭秘冷轧精密带钢DC03-C340:3大核心特性如何赋能精密制造?
朋友们,今天咱们不聊虚的,就聊聊工厂车间里最实在的东西——材料。你是不是也遇到过这样的烦心事:花大价钱买回来的钢带,一上冲床就开裂,废品率居高不下;或者热处理后表面出现诡异的蓝线,抛光怎…...
文墨共鸣大模型处理Java八股文与面试题:智能学习与模拟面试
文墨共鸣大模型处理Java八股文与面试题:智能学习与模拟面试 准备Java技术面试,大概是每个开发者都绕不开的一道坎。面对海量的“八股文”知识点和层出不穷的面试题,你是不是也经历过这样的场景:翻开厚厚的面试宝典,感…...
3步打造高效右键菜单:让Windows操作提速50%
3步打造高效右键菜单:让Windows操作提速50% 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否也曾在右键点击文件时,面对长达20个选项…...
28-模块四-AI代码审核实战 第28讲-代码质量评分体系 - 可维护性 可读性 可测试性的量化指标
本讲目标:理解「量化指标」如何把主观感受变成可治理信号;掌握从 Python AST 计算圈复杂度与认知复杂度的基本方法;实现可配置权重的 QualityScorer、历史趋势与团队基准对比接口;输出 JSON 与 Markdown 双语报告,嵌入 CodeSentinel 审核结论。本讲强调可解释:每个分数都…...
计算机毕业设计springboot基于web的好文阅读网站的设计与实现 SpringBoot在线文学阅读与创作平台的设计与实现 基于Web的数字化阅读社区系统构建
计算机毕业设计springboot基于web的好文阅读网站的设计与实现xl6429gd (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着互联网技术的飞速发展和数字阅读习惯的普及࿰…...
SaaS的末日重构:AI Agent浪潮下的危机与新生
目录 前言 一、 市场恐慌的源头:“软件-PE”的死亡循环 二、 核心重构:AI 将如何改造企业级 SaaS? 2.1 交互层的降维打击:从“点界面”到“说意图” 2.2 流程层的动态重组:从“应用中心”到“工作流中心” 2.3 定…...
IO-Link物理层深度解析:编码机制与接口设计实战
1. IO-Link物理层编码机制详解 第一次接触IO-Link的开发者往往会被它的11bit编码规则绕晕。我刚开始调试STM32的IO-Link主站时,就因为在UART配置上少勾选了一个校验位,导致从站设备死活不响应。后来用逻辑分析仪抓包才发现,原来发送的0xF1在…...
Android定时开关机的5种实现方式对比:哪种最适合你的设备?
Android定时开关机技术全景解析:从系统API到硬件层控制的深度实践 在智能设备管理领域,定时开关机功能一直是工业控制、物联网终端和定制化Android设备的核心需求之一。想象一下,你正在部署一批智能售货机,需要在营业时间自动唤醒…...
从NTLM中继到域控接管:ADCS-ESC8漏洞实战解析
1. ADCS-ESC8漏洞概述 ADCS-ESC8是Active Directory证书服务(AD CS)中的一个高危漏洞,它允许攻击者通过NTLM中继攻击获取域控制器证书。这个漏洞的核心在于ADCS默认配置中的Web证书注册页面仅使用HTTP协议且支持NTLM认证,但未启用任何中继攻击防护措施。…...
表贴式PMSM超前角弱磁控制策略:弱磁id=0控制速度提升研究,从2000rpm到4000rp...
该模型实现表贴式PMSM的超前角弱磁控制策略 不打开弱磁id0控制速度只能达到2000rpm,打开能够弱磁到4000rpm在调试表贴式永磁同步电机(PMSM)时,发现一个有趣的现象:当保持id0的传统控制策略时,电机转速死活卡…...
