使用Es6的Object.key() 搭配 数组的every()方法快速效验表单
//此对象使我们的表单提交数据
formData:{
name:'',
birthdate:'',
workExp:'',
phone:'',
headImg:'',
postName:'',
teachFeature:'',
teachOutcome:'',
workRecord:'',
subjectId:'',
userName:'',
userPass:'',
},
//在我们的提交方法中对此表单快速效验
doSave(){
// 验证必填项信息
const { formData} = this
const Required = Object.keys(formData).every(key=> formData[key])
//Object.keys(formData)方法可以枚举formData对象的所有key值到一个数组中
//every方法内验证formData[key]每一项是否为空值 所有的key都不为空则返回true 否则返回false
if(!Required){
this.toast('请完善老师信息')
return
//验证不通过 提示完善信息 并且return 停止
}
}
一、Object.key()方法
- 语法 Object.keys(obj) 参数为 要返回其枚举自身属性的对象
- 返回值:一个表示给定对象的所有可枚举属性的字符串数组
处理一个对象
let obj = {name:"张三",age:22,address:"郑州",say(){}}
Object.keys(obj) // ["name", "age", "address","say"]
处理一个数组 返回索引数组
let arr = [1,2,3,4,5,6]
Object.keys(arr) // ["0", "1", "2", "3", "4", "5"]
处理字符串 返回索引数组
let str = "abcdefg"
Object.keys(str) // ["0", "1", "2", "3", "4", "5", "6"]
二、every()方法
- 给定条件,只有当数组中所有值都满足该条件,才返回true,当有值不符合该条件时,返回false,之后的值不再进行检
- 接收三个参数(currentValue,index,arr) 其实currentValue必填 为当前元素 ,index(下标)和arr(数组)选填
let stuList = [
{
name: '小明',
age: 20
},
{
name: '小红',
age: 21
},
{
name: '小绿',
age: 22
},
{
name: '小黑',
age: 23
}
];
const everyReject = arr.every((value, index, arr) => {
return value.age > 21;//判断条件
});
console.log(everyReject)//false
const everyResult = arr.every((value, index, arr) => {
return value.age >=20;//判断条件
});
console.log(everyResult)//true