如何检查对象是否为空
检查数组是否为空很容易,直接调用length方法就可以了,那么如何检查对象是否为空呢
这里的空表示对象没有自己的属性
假设这里有两个对象,一个是对象,另一个是对象
let obj1={ name: 'oli ',child : { name : ' Oliver ' } } let obj 2={[Symbol(' Name ')]: ' Alice ' } let obj 3=object . definepreproperty({ },Name ',{value:' Alice ',enumerable 3360 false })letobj 4=object . create(null)//我们需要一个函数。确定它是否不包含自己的属性isempty(obj 1)//false isempty(obj 2)//false isempty(obj 3)//false isempty(obj 4)//true。在思考了很长时间以查看对象是否有符号属性之后,您只能使用getOwnPropertySymbols方法。如果有更好的方法,请留言
方法1:遍历
For-in遍历,并通过hasOwnProperty方法确认是否有键。此方法不能遍历带有可枚举false的属性
const isEmptyObj=object={ if(!对象。getownpropertysymbols(对象)。length) {return false}用于(对象中的常量键){if(对象。hasown property(key)){ return false } } return true }方法2: keys方法
使用对象静态方法键,然后判断长度。keys返回它自己的可枚举属性,因此无法使用可枚举false遍历该属性
const isEmptyObj=object={ if(!对象。getownpropertysymbols(对象)。长度){return false} if(对象。按键(对象)。长度){返回false}返回true}方法3: JSON方法
JSON Stringify方法用于将对象转换为字符串。与字符串“{ 0 }”相比,该方法不能获得非遍历属性
const isEmptyObj=object={ if(!Object.getOwnPropertySymbols(对象)。length) { return false }返回JSON.stringify(对象)==='{}'} .方法4: getOwnPropertyNames方法
使用Object的getOwnPropertyNames方法获取所有的属性名,这样即使是不可枚举的属性也仍然可以获得,这是一个相对还行的方法。
const isEmptyObj=object={ if(!Object.getOwnPropertySymbols(对象)。length) { return false } if(!Object.getOwnPropertyNames(对象)。长度){返回假}返回真}
简化版:
const isEmptyObj=object=!Object.getOwnPropertySymbols(对象)。长度!对象。getownpropertynames(对象)。长度以上是js如何向您介绍如何检查对象是否为空。希望对你有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!
版权声明:如何检查对象是否为空是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。