JS验证对象中的值是否为空、数组对象中的值是否为空;数据请求成功后清空所有数据

如何验证向后端传的对象(或者数组对象)当中是否有值为空

前言:写后台时,我们在向后端传一些对象形式的数据时,发现表单验证只能验证一些表单数据是否有值,验证不了一些上传文件、链接等是否有值

1. 判断对象中属性值是否为空(简单类型的对象)

  • 实现这个功能主要依靠for in 对象遍历
  • 以下是代码
   click() {
      //开关类型布尔值
      var flag = true;
      var obj = {
         name:'',
         age:'',
         creatTime:''
      };
      //判断对象中的值是否为空
      for (var keys in obj) {
       //obj.keys代表aaa这个对象的k属性的值,并不是k对应的变量值的属性。
        //obj[keys],代表的是aaa这个对象中k这个变量值对应的属性值。
        if (!obj[keys].trim()) {
          flag = false;
          //只要flag,跳出循环
          break;
        }
      }
      if (flag) {
        return console.log("填写完成")
      } else {
        return console.log("填写完整之后提交")
      }
    },
  • 以上是判断最简单的对象中是否有值为空

2. 数据请求成功后清空所有数据(简单对象形式)

     //清空对象数据
      for (var index in obj) {
         obj[index] = "";
      }

3. 判断对象(对象中含有数组,数组中又含有对象)是否有值为空

  • 该对象中包含正常属性,数组(数组中含对象),用到了判断数据
  • 如何不会判断数据类型的,查看JS/JQ如何判断数据类型
  • 以下是代码
click() {
      //开关类型布尔值
      var flag = true;
      var obj = {
         name:'',
         age:'',
         creatTime:'',
         contentList:[
           {
             title:'',
             content:''
           },
           {
             title:'',
             content:''
           }
         ],
         allPerson:[
           {
             name:'',
             content:''
           },
           {
             name:'',
             content:''
           }   
         ]
      };
   //判断对象中的值是否为空
      for (var keys in obj) {
        //判断数据类型
        if (typeof obj[keys] == "string") {
          if (!obj.trim()) {
            flag = false;
            break;
          }
          //判断数据类型
        } else if (obj[keys] instanceof Array) {
          //some查找数组中有满足条件的 返回布尔类型
          flag = obj[keys].some((item) => {
            return (
              item.content == "" || item.title == "" || item.name== ""
            );
          });
          break;
        }
      }
      if (flag) {
        return console.log("填写完成")
      } else {
        return console.log("填写完整之后提交")
      }
    },

4.数据请求成功后清除对象(对象中含有数组,数组中又含有对象)

 /**
     *成功后清空所有
     */
    cancel() {
      //取消清空对象数据
      for (var index in obj) {
        if (typeof obj[index] == "string") {
          obj[index] = "";
        } else if (obj[index] instanceof Array) {
          obj[index].forEach((item)=>{
             item.content ="" ;
             item.title = "" ;
             item.name ="";
          })
        }
      }
    } 

更多推荐:wantLG的《普歌-码上鸿鹄团队:JS判断数据类型的常用方法


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wantLG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值