如果循环中至少有一个元素返回 false,如何将变量设置为 false
How to set a variable to false if at least one element in a loop returns false?
以下函数循环访问对象的值。如果值为空this.hasInvalidValue
设置为 true
,如果值不为空,则设置为 false
this.hasInvalidValue
:
user: {
email: '',
password: ''
}
function validate () {
for (let key in this.object) {
const isValueInvalid = !this.object[key]
if (this.isKeyRequired(key) && isValueInvalid) {
this.hasInvalidValue = true
}
if (this.isKeyRequired(key) && !isValueInvalid) {
this.hasInvalidValue = false
}
}
}
这有问题。考虑一个登录表单:
Email // empty (this.hasInvalidValue is set to false)
Password // not empty (this.hasInvalidValue is set to true)
// Final value of this.hasInvalidValue is true. Good
Email // not empty (this.hasInvalidValue is set to false)
Password // empty (this.hasInvalidValue is set to true)
// Final value of this.hasInvalidValue is false. Not good
我该怎么做validate
如果至少false
1 个值,this.hasInvalidValue
设置为 false
.并且仅在所有值都不为空时才true
?
这个怎么样?
function validate () {
this.hasInvalidValue = true
for (let key in this.object) {
const isKeyInvalid = !this.object[key]
if (this.isKeyRequired(key) && !isKeyInvalid) {
this.hasInvalidValue = false
break;
}
}
}
相关文章:
- 当对象中的所有变量都为false时,AngularJs禁用按钮
- 如果循环中至少有一个元素返回 false,如何将变量设置为 false
- 如何将javascript变量传递给php文件,运行数据库查询并返回true或false
- 当值与变量关联时,JavaScript 条件为 false
- 为什么Javascript中未定义的变量有时会计算为false,有时还会抛出未捕获的ReferenceError
- 为什么JavaScript在比较一个变量和两个true语句时返回false
- 如何将对正在定义或未定义的变量的检查强制转换为读取True或False的字符串
- 变量=true,即使if语句为false
- 基于true/false变量显示/隐藏进度条
- 检查变量是否为false,而不是true或未定义
- link_to_remote:如果javascript变量为false,我该如何中止操作
- Meteor:设置车把变量true/false
- 轻松地将多个变量设置为false或true
- 未定义的变量,值==false对!价值
- jQuery Ajax更改缓存变量名称:false
- 在简写if表达式中,值变量为0而不是false
- 变量的计算结果总是false
- 如何轻松地将变量设置为false,而默认值为true ?
- $. inarray()返回false -1,即使变量匹配数组
- 在倒数计时器结束时设置变量为false