如何验证向后端传的对象(或者数组对象)当中是否有值为空
前言:写后台时,我们在向后端传一些对象形式的数据时,发现表单验证只能验证一些表单数据是否有值,验证不了一些上传文件、链接等是否有值
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判断数据类型的常用方法》
- 作者:wantLG
- 本文源自:wantLG的《普歌-码上鸿鹄团队:JS验证对象中的值是否为空、数组对象中的值是否为空;数据请求成功后清空所有数据》
- 本文版权归作者和CSDN共有,欢迎转载,且在文章页面明显位置给出原文链接,未经作者同意必须保留此段声明,否则保留追究法律责任的权利。