js判断对象为空的方法
在异步请求中我们常常要对后台返回的数据进行判断
当然后台会返回成功状态的数值比如下图:
成功的时候可以这么判断data.data.length==0,然后再做后续的操作,但也会碰到其他的返回结果比如是个对象?
这个时候就如果单纯的通过返回状态和length ==0 就无法满足业务需求
if(data.errCode==0){ // 成功的时候需要做什么
if(data.data.length ==0){
//这个时候 如果data.data是一个对象的话data.data.length就会报错
}
}else{
}
所以完善的判断才能满足业务需求,所以这个时候就需要先了解怎么判断对象为空
判断对象为空
方法一:
var obj = {};
JSON.stringify(a) =="{}" //true
方法二:
var obj = {};
function b() {
for(var key in obj) {
return false;
}
return true;
}
方法二:
var obj = {};
方法三:
Object.keys(obj ).length == 0
完美的逻辑判断
if(data.errCode==0){ // 成功的时候需要做什么
let check = JSON.stringify(data.data) ;
if(check =="{}"||check =="[]"||check =="null"){
return alert( "返回数据为空,给予提示")
}else{
//业务逻辑
}
}else{
}
当然这个方式适合了很多的数据返回格式, 但也有一些比较奇葩的格式,具体还要视情况而定,但也离不开判断数组和对象。