检查一个数组为空很容易,直接调用长度方法即可,那么如何检查一个对象是否为空呢& # 10067;
这里的空指的是对象没有自有属性
假设这里有两个对象,一个是obj一个是anotherObj
让其中obj1={ 名称:“奥利”, 孩子:{ 名称:“奥利弗” } } 让methoda={ (符号('名称')):“爱丽丝” } 让obj3=Object.defineProperty({},“名字”,{ 价值:“爱丽丝”, 可列举的:假 }) 让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把方法将对象转为字符串,与字符串“{}”对比,同样该方法无法获取到不可遍历属性
const isEmptyObj=对象=比;{ 如果(! ! Object.getOwnPropertySymbols(对象). length) { 返回假 } 返回JSON.stringify(对象)===皗}” } >之前。
使用对象的getOwnPropertyNames方法,获取所有属性名,这样就算是不可枚举属性依然能够获取到,算是比较好的的方法。
const isEmptyObj=对象=比;{ 如果(! ! Object.getOwnPropertySymbols(对象). length) { 返回假 } 如果(! ! Object.getOwnPropertyNames(对象). length) { 返回假 } 还真 } >之前
简化版:
const isEmptyObj=对象=比;! Object.getOwnPropertySymbols(对象)。长度,,以上所述是小编给大家介绍的js如何检查一个对象是否为空详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如何检查一个对象是否为空