介绍
这篇文章将为大家详细讲解有关JavaScript检查一个对象是否为空的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
检查一个数组为空很容易,直接调用长度方法即可,那么如何检查一个对象是否为空呢?
<强>这里的空指的是对象没有自有属性强>
假设这里有两个对象,一个是obj一个是anotherObj
让其中obj1={ 名称:& # 39;奥利# 39; 孩子:{ 名称:& # 39;奥利弗# 39; } } 让methoda={ (符号(& # 39;名字# 39;)]:& # 39;爱丽丝# 39; } 让obj3=Object.defineProperty({} & # 39;名字# 39;,{ 价值:& # 39;爱丽丝# 39; 可列举的:假 }) 让obj4=Object.create(空)//我们需要一个函数,判断是否不含自有属性 isEmpty(其中obj1)//假的 isEmpty (methoda)//假的 isEmpty (obj3)//假的 isEmpty (obj4)//真正的
? ?想了半天查看对象是否有象征属性只能使用getOwnPropertySymbols方法,如果还有更好的方法欢迎留言引用><强>方法一:遍历强>
工党遍历,并通过hasOwnProperty方法确认是否存在某个关键这种方法不能够遍历到可列举的为假的属性
const isEmptyObj=对象=比;{ 如果(! ! Object.getOwnPropertySymbols(对象). length) { 返回假 } (const关键对象){ 如果(object.hasOwnProperty(关键)){ 返回假 } } 还真 }<>强方法二:键方法强>
使用对象静态方法键然后判断长度即可,键返回的是自身可枚举属性,因此同样的不可遍历到可列举的为假的属性
const isEmptyObj=对象=比;{ 如果(! ! Object.getOwnPropertySymbols(对象). length) { 返回假 } 如果(种(对象). length) { 返回假 } 还真 }<>强方法三:JSON方法强>
使函数用JSON把方法将对象转为字符串,与字符串& # 39;{}& # 39;对比,同样该方法无法获取到不可遍历属性
const isEmptyObj=对象=比;{ 如果(! ! Object.getOwnPropertySymbols(对象). length) { 返回假 } 返回JSON.stringify(对象)===& # 39;{}& # 39; }<>强方法四:getOwnPropertyNames方法强>
使用对象的getOwnPropertyNames方法,获取所有属性名,这样就算是不可枚举属性依然能够获取到,算是比较好的的方法。
const isEmptyObj=对象=比;{ 如果(! ! Object.getOwnPropertySymbols(对象). length) { 返回假 } 如果(! ! Object.getOwnPropertyNames(对象). length) { 返回假 } 还真 }
简化版:
const isEmptyObj=对象=比;! Object.getOwnPropertySymbols(对象)。长度,,! Object.getOwnPropertyNames(对象)。长度关于JavaScript检查一个对象是否为空的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。
JavaScript检查一个对象是否为空的方法