递归判断对象属性值是否为空
面对一个复杂的对象,在最后处理数据校验非空的时候,可以使用以下方法
let data={
attr1:'abc',
attr2:'def',
attr3:[
{
attr4:'abc',
attr5:'def',
},{
attr6:'abc',
attr7:'',
}
],
attr8:{
attr9:'abc',
attr10:'',
}
}
function judgeObj(data) {
let flag = true;
let _this = this;
function judgeChildren(obj) {
for(var key in obj){
if(typeof obj[key] === 'string'){
// 字符串
if(!obj[key]){
flag = false
//可以在此将key赋值给一个全局变量,判断是哪个属性值为空
return
}
}else if(Array.isArray(obj[key])){
// 数组
obj[key].forEach((item)=>{
judgeChildren(item)
})
}else{
//对象
judgeChildren(obj[key])
}
}
}
judgeChildren(data);
return flag;
},
function submit(){
let res = this.judgeObj(data)
if(!res){
console.log('error')
}else{
this.$api.xxx(data).then(()=>{
///xxx
})
}
}