js 遍历对象,检查是否有空值、遍历数组检查是否有空值
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 para
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)
some() 方法用于检测数组中的元素是否满足指定条件。如果有一个元素满足条件,则表达式返回
true,并且会立即终止该方法的迭代。如果没有满足条件的元素,则返回 false。
every() 方法用于检测数组中的所有元素是否都满足某个条件。如果所有元素都满足条件,则返回 true,否则返回 false。
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
更多推荐
所有评论(0)