递归判断对象属性是否有值

递归判断对象属性值是否为空

面对一个复杂的对象,在最后处理数据校验非空的时候,可以使用以下方法

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
     })
   }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值