在前端开发过程中,对数据处理是一个非常常见的操作,而且以数据处理为切入点,对于刚从事前端开发人员来说有很多相关的知识点需要了解和学习。在 JS 中判断对象 (obj) 是否为空也是比较常见的操作,那么本文就来分享一下关于判断对象的格式的方式。
引申
首先来看一个网上的比较经典的关于 js 判断对象是否为空的例子,具体内容如下所示:
js 判断一个对象是否为空:
当 obj=””,obj=undefined,obj=null,obj=NaN 的时候 if(obj)为 false;
obj 不为空的时候 if(obj) 为 true。
看完上面的网上的例子之后是不是觉得很简单,但是如果按照上述步骤操作,会成功么?请看官自行先试验一下是否可以,这里就不再演示最后的结果。
核心内容
下面来讲解一下比较专业的方法,具体方法如下所示。
js 判断对象是否为空的方式有五种,其中目前比较流行的有三种:JSON.stringify()
、for...in
循环判断、Object.keys()
,剩余两种为:jquery 的isEmptyObject
方法、Object.getOwnPropertyNames()
方法。本文只来讲解一下当下比较常用的三种判断对象对象是否为空的方法,剩下的两种这里不再介绍。
方法一:JSON.stringify()方法
通过JSON.stringify()
将 json 对象转化为 json 字符串,再判断该字符串是否为”{}”,这就直接可以得出来这个对象是否为空。
var data = {}; var a = (JSON.stringify(this.projectData) == "{}"); //把 data 转换为字符串 a if(a === true)){ //如果 data 为空,返回为 true return; }
方法二:for…in 循环判断
通过 for...in
循环来判断对象 (obj) 是否为空,直接通过for...in
循环来对对象进行处理。
var data = {}; var a = function() { for(var key in data) { return false; } return true; } alert(a()); //为 true,说明 data 为空对象
方法三:Object.keys()
通过Object.keys()
来进行对象 (obj) 是否为空的判断,该方法也是 ES6 新增的方法, 返回值是对象中属性名组成的数组。
var data = {}; var array = Object.keys(data); if(array.length === 0){ //如果数组 array 的长度为 0 ,则返回为 true,说明 data 对象为空 return ; }
示例
最后举一个实战中的简单实例,一目了然的来使用 JS 判断对象 (obj) 是否为空的方式:
nextClick() { //打印出来 this.projectData console.log("this.projectData",this.projectData); //根据 this.projectData 打印出来的结果,对 this.projectData 进行 json 格式的转换,然后就可以直接使用转换后的格式,true 为空 var tmpStr = (JSON.stringify(this.projectData) == "{}"); if (tmpStr == true) { //true 为空 this.$toast("请选择!"); return; } },
结语
通过上面的介绍,在前端开发的时候遇到 js 判断对象 (obj) 是否为空就很简单了,知识点虽然不复杂,但是很实用,尤其是对于刚接触前端开发者来说非常实用。