[JS] 如何判断一个对象是否为空

news/2024/12/12 6:09:52/

js判断空对象的几种方法

一、将对象转为字符串比较

let a = {}
console.log(JSON.stringify(a) === '{}') //true

二、for…in循环

function isEmpty(obj) {for (let key in obj) {return false}return true
}
console.log(isEmpty(a)) //true

三、Object.getOwnPropertyNames()

Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
用此方法判断空对象只需要判断返回的数组长度是否为零,为零的话就是空对象。

console.log(Object.getOwnPropertyNames(a).length == 0) //true

四、Object.keys()

该方法属于 ES5 标准,IE9 以上和其它现代浏览器均支持。Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致。
用此方法判断空对象只需要判断返回的数组长度是否为零,为零的话就是空对象。

let keys = Object.keys(a)
console.log(keys.length == 0) //true

完整代码:

//js判断空对象的几种方法
//一、将对象转为字符串比较
let a = {}
console.log(JSON.stringify(a) === '{}') //true//二、for…in循环
function isEmpty(obj) {for (let key in obj) {return false}return true
}
console.log(isEmpty(a)) //true//三、Object.getOwnPropertyNames()
//Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的属性名
//(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
//用此方法判断空对象只需要判断返回的数组长度是否为零,为零的话就是空对象。
console.log(Object.getOwnPropertyNames(a).length == 0) //true//四、Object.keys()
//该方法属于 ES5 标准,IE9 以上和其它现代浏览器均支持。
//Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,
//数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致。
//用此方法判断空对象只需要判断返回的数组长度是否为零,为零的话就是空对象。
let keys = Object.keys(a)
console.log(keys.length == 0) //true

运行结果:
在这里插入图片描述


http://www.ppmy.cn/news/607540.html

相关文章

大数据必学Java基础(二十四):数组的引入和学习

文章目录 数组的引入和学习 一、数组的引入 1、习题引入 二、数组的学习

低数值精度推理和训练

低数值精度推理和训练 介绍 如今,大多数商业深度学习应用程序使用 32 位浮点精度 ( ) 来处理训练和推理工作负载。各种研究人员已经证明,深度学习训练和推理都可以以较低的数值精度进行,使用 16 位乘法器进行训练,使用 8 位乘法器…

数据湖(十五):Spark与Iceberg整合写操作

文章目录 Spark与Iceberg整合写操作 一、INSERT INTO 二、MERGE INTO

TVM量化路线图roadmap

TVM量化路线图roadmap INT8量化方案 本文介绍了量化过程的原理概述,提出了在TVM中实现量化过程的建议。  介绍量子化的背景知识  INT8量化-后端代码生成  这个线程只关注TVM中量化层的实现 量子开发 基于搜索的自动量化 提出了一种新的量化框架,…

python 列表生成式、lower()和upper()的使用

参考: http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00138681963899940a998c0ace64bb5ad45d1b56b103c48000 ########################################## lower():字符串缩小: sASDFss.lower() uppe…

寒武纪智能系统参数

寒武纪智能系统参数 • 思元290 • MLU290-M5智能加速卡 • MLU290-M5 • MLU290-M5智能加速卡搭载寒武纪首颗训练芯片思元290,采用台积电7nm先进制程工艺,采用MLUv02扩展架构,集成了高达460亿的晶体管。MLU290-M5智能加速卡采用开放加速模块…

电脑总有安装计算机更新,为什么我们的电脑总会莫名的安装垃圾软件,看完吓一跳,欢迎关注...

现在电脑已经走进了我们的生活,很多人都已经接触电脑了,然而对于电脑的使用,我们除了知道那些最常见的使用方式之外,大多数人对电脑的其他功能任然是一无所知,当然学习电脑专业和IT的除外了,很多人应该都会…

大数据必学Java基础(二十五):数组的三种初始化方式

文章目录 数组的三种初始化方式 一、静态初始化 二、动态初始化 三、默认初始化 <