【 javascript】对象非空校验

背景

管理系统编辑页面存在子表,数据提交之前需要对子表进行非空校验

方案一

  // 非空校验
    emptyCheck(obj) {
      let flag
      if (JSON.stringify(obj) === '{}') {
        flag = true
      } else {
        try {
          Object.keys(obj).forEach(function (key) {
            if (obj[key] == null || obj[key] == undefined || obj[key].length == 0 || obj[key] == '') {
              flag = true
            } else {
              flag = false
              forEach.break = new Error()
            }
          })
        } catch (e) {}
      }
      return flag
    },

方案二:(后来新发现一个简单的)

const isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object;
isEmpty({}) // true
isEmpty({a:"not empty"}) //false

方案三:(非常实用!!!!)

//判断是否空值
var isRequiredButEmpty = function(isRequred, val) {
  if(!isRequred) {
    //如果是非必填,返回
    return false;
  }
  //以下处理必填情况
  if(!val || val == '') {
    //如果单值为空
    return true;
  }
  let value = JSON.parse(val)['value'];
  if(!value || value == '') {
    //如果双值为空
    return true;
  }
  return false;
}

// 使用:
submit(){
  if(isRequiredButEmpty(true, this.state.aaa)) {
    return {success:false, msg: '请填写必填项:aaa!'};
  }
}
submit()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值