1、对象

var obj = {a:"123",b:""};
for(var key in obj){
  if(!obj[key]){
    alert('有空值')
    return
  };
}

函数封装:

/*
** @return flag
** @params 目标对象
*/
const paramsValidate = function (params) {
  let flag = true;
 
  for(var key in params){
    if(params[key] != '0' && !params[key]){
      alert('请完善数据');
      return false; // 终止程序
    }
  }
 
  return flag;
}

2、数组对象([{},{[]}])

我们平时提交表单的时候 需要用户填写所有信息校验不为空
方法一

const objecAtrtIsEmpty = function (data) {
  // 如果是数组,遍历数组里面的
  if (Array.isArray(data)) {
    if (data.length == 0) return false;
    return data.every(el => {
      return objecAtrtIsEmpty(el);
    });
    // 非空数组
  } else if (Object.prototype.toString.call(data) === "[object Object]" && JSON.stringify(data) !== '{}') {

    //对象or对象数组
    return Object.keys(data).every(key => {
      // 如果对象子元素为数组
      if (Array.isArray(data[key])) {
        if (data[key].length == 0) return false;
        return data[key].every(el => {
          return objecAtrtIsEmpty(el);
        });
      } else if (Object.prototype.toString.call(data) === "[object Object]") {
      	 // 如果0表示不为空的话可以直接用!data
        // 直接用!data,非运算符的话有些值为0的话会被过滤掉
        return data[key] != "" && data[key] != null && data[key] != undefined;
      } else {
        return key != "" && key != null && key != undefined;
      }
    });
  } else if (Object.prototype.toString.call(data) === "[object Object]" && JSON.stringify(data) === '{}') {
    return false;
  } else {
    // 处理单个值
    return data != "" && data != null && data != undefined;
  }
}

在这里插入图片描述
方法二 (只能判断判断数组中对象的value不为空,不能判断数组中数组的值为空)

judgeObjectComplete(ObjectValue) {
    let flag = new Boolean()
    flag = true
    for (let key in ObjectValue) {
      if (ObjectValue[key]) {} else {
        flag = false
      }
    }
    if (!flag) {
      return false
    } else {
      return true
    }
  },
  judgeListComplete(list) {
    let isNotComplete = list.findIndex(item => {
      return this.judgeObjectComplete(item) === false
    })
    if (isNotComplete > -1) {
      return false
    } else {
      return true
    }
  },

在这里插入图片描述

3、 判断数组对象某一项的值是否为空(some、every)

if (this.arrayData.some((val) => val.score== '')) {
this.$message({
    type: "error",
    message: "请填写分数,分数不能为空,
  });
  return;
}

var that = this
let flag = that.arrayData.every(item => !!item.score)
if (!flag) {
    console.log('score分数不能为空!')
    return
  }else{
    //不为空时执行的结果
  }

参考:
https://blog.csdn.net/simper_boy/article/details/115914556?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-1.no_search_link&spm=1001.2101.3001.4242

https://blog.csdn.net/qq_32849999/article/details/105816243?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-4.no_search_link&spm=1001.2101.3001.4242

https://blog.csdn.net/weixin_41346436/article/details/119411848?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.no_search_link&spm=1001.2101.3001.4242

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。