具有多个条件的 if 子句
If clause with multiple conditions
我似乎迷路了,或者只是似乎很困惑。为了简化问题:我想检查数组中的每个数组是否都为 true,当且仅当所有数组都为 true,它才应该返回一个特定的值。
var trueArray=[true,true,true,true];
就像在我的代码中一样,数组的长度最多可以有 100 个元素,我不能简单地检查每个元素,而需要一个 for 循环。
for(var i=0;i<trueArray.length;i++){
if(trueArray[i]===true)
{
//do something
}
}
但是,上面的代码在循环的每一步都做一些事情,但我只希望它在每个条件都为真并且不介于两者之间时做一些事情。目前想不出解决方案?
使用 Array.prototype.every
if (trueArray.every(function(x) { return x; })) {
//do something
}
如果保证是boolean
你可以检查它们中的任何一个是否为假,而不是它们是否都是真的Array.prototype.indexOf
if(trueArray.indexOf(false) === -1) {
// none are false, so do stuff
}
您无需使用循环或创建函数。
声明一个已经为 true 的检查变量,如果其中一个数组值为 false,则将其设置为 false。之后,检查它是否属实并做点什么。
例:
var trueArray=[true,true,true,true];
var bCheckArrayVal = true;
for(var i=0;i<trueArray.length;i++){
if(trueArray[i]===false){
bCheckArrayVal = false;
}
if (bCheckArrayVal) {
// do something if true
} else {
// do something if false
}
}
尝试以下代码:
var currentValue = true;
for(var i=0;i<trueArray.length;i++){
if(trueArray[i]===false){
currentValue = false;
}
}
if(currentValue === true){
//do something
}
一旦得到一个假值,你就应该短路逻辑,必须答案没有得到你的问题,因为你把误导性的逻辑放在 for 中,即使你只希望它完成一次如果所有值都为真。
你需要类似的东西
var flag=true;for(var i =0;i
如果(标志){做某事}
你可以这样做...
var trueArray=[true, true, true, true];
var allTrue=false;
for(var i=0;i<trueArray.length;i++){
if(trueArray[i]===false){
allTrue=false;
break;
}
else
{
allTrue=true;
}
}
if(allTrue==true)
{
// do something if all values are true
}
如果检测到 false 值,则必须中断循环。
相关文章:
- Knockout.js中带有if:子句的嵌套循环
- if 子句在 JavaScript 中限定工作流
- 尝试在 if 子句中将变量从 js 发布到 php
- if子句中的赋值运算符赋值并执行检查
- else-if子句未按预期工作
- if子句中的值为空
- 具有多个条件的 if 子句
- 角度 ng-if 子句不能双向工作
- if子句是否遍历了它的所有语句,即使它'It’没有必要
- 为什么't我的模板's if子句是被动更新的
- Javascript if子句获胜'不起作用
- addClass()在jQuery的if子句中未按预期工作
- 如果条件不满足,为什么if子句会触发
- 多个if子句的单个else子句-javascript
- Javascript if子句不能正常工作
- 在jquery中使用. hasclass()和if子句
- 为什么这个js if子句没有停止循环
- if子句中的多个条件
- 为什么互斥if子句中的声明被认为是重复的?
- 如何在for循环中阻止条件语句同时运行if子句和else子句?