爱收集资源网

JS判断对象为空的6种神奇方法

网络整理 2023-10-28 12:04

js怎样判别对象属性是否为空,js对象为空

admin08-2406:34140次浏览

js判定对象为空早已有好几种方式了,而且个人认为不是非常便捷。

例如:

1、把对象通过JSON.stringify转为字符串,再判定字符串是否等于"{}"

2、forin循环,判定key是否存在

3、jq的方式

es6早已帮我们挺好的解决了这种问题。

es6针对对象降低了3个新方式(链表也有):

(1)、Object.keys:返回一个链表,成员是参数对象自身的(不含承继的)所有可遍历属性的键值

(2)、Object.values:返回一个链表,成员是参数对象自身的(不含承继的)所有可遍历属性的通配符

(3)、Object.entries:返回一个链表,成员是参数对象自身的(不含承继的)所有可遍历属性的通配符对

由此,我们可以通过其中任意一个方式,得到返回的链表,判定链表宽度是否小于0,来判定对象是否为空。

举个板栗:

constobj={foo:'bar',baz:42}console.log(Object.keys(obj));//["foo","baz"]console.log(Object.values(obj));//["bar",42]console.log(Object.entries(obj));//[["foo","bar"],["baz",42]]//复印返回值的宽度console.log(Object.keys(obj).length);//2constobj2={};console.log(Object.keys(obj2));//[]//复印空对象的宽度console.log(Object.keys(obj2).length);//0

这样我们就可以很简单直观的判别出对象是否为空,而且可以通过这三个方式,领到想要的数据(键值、键值、键值对)

这么既然得到了返回值字段,我们也可以很简单的判定对象中是否包含某个我们已知的属性名

console.log(Object.keys(obj).indexOf('baz'));//1console.log(Object.keys(obj).indexOf('ad'));//-1

js判断属性是否为空_判断一个属性的值是否为空值_判断属性值是否为null

indexOf可以判定字段是否包含某个值js判断属性是否为空,返回该值所对应的下标js判断属性是否为空,对于不存在的值,返回-1

这样我们才能判定对象是否包含某个属性名了

其实了,es6还提供了其他几种判定对象是否包含属性名的方式,如下:

1、in:属性名in对象(判定属性名是否在对象中存在,返回一个布尔值)

console.log('baz'inobj);//true

2、hasOwnProperty:对象.hasOwnProperty(属性名)(判定对象中是否富含某个属性名,返回一个布尔值)

console.log(obj.hasOwnProperty('baz'));//true

好了,以上就是es6中判定对象是否为空,但是判定对象是否包含某个属性的方式

如有问题,请强调,接收批评。

js判断属性是否为空
上一篇:电脑中隐藏的宝藏:找回win10系统回收站 下一篇:没有了